Architecture

Here we define all files and folders that are used in this project.

  • README.md - main readme file, it specifies the entry point to the project's documentation

  • package.json - main file of the project. It defines the project's dependencies and scripts. It is also used to provide meta-data for many other tools

  • package-lock.json - lock file for dependencies. It is used to install exactly the same versions of dependencies on each build

  • nuxt.config.ts - the main configuration file for Nuxt. It contains a list of installed plugins and other configuration. It is also used to specify how to build this project

  • tsconfig.json - is used to specify how to deal with the ts files in this project. We can introduce new ts features by adding new configuration

  • .eslintrc.js - configuration file for ts, js, and vue files linting

  • stylelint.config.js - configuration file for stylelint, which is used for linting styles

  • .nvmrc - file with node version specification. Make sure that you have it installed, or otherwise, the project will not work at all

  • .editorconfig - file with format specification. You need to install the required plugin for your IDE in order to enable it

  • .gitignore - file that specifies what should we commit into the repository and we should not

  • docker/ - this folder contains Dockerfiles and utility scripts that are used for development and quality assurance

  • docker-compose.yml - this the file specifies docker services that are needed for development and testing

  • .dockerignore - specifies what files should not be copied to the docker image

  • .gitlab-ci.yml - GitLab CI configuration file. It basically defines what to do with your project after pushing it to the repository. Currently it is used for testing and releasing a docker image

  • jest.config.js - this file is used to configure jest

  • .vscode/ - vscode IDE integration. We store different settings, plugins, and tasks inside this folder

Client

  • assets/ - this directory contains your images, fonts, or any other files that you want to be processed by webpack

  • components/ - the components directory contains your Vue components, Nuxt doesn't supercharge these components

  • layouts/ - this directory contains your Application Layouts

  • logic/ - this directory contains your Application Logics. You should put everything that is considered business logic here

  • middleware/ - this directory contains your Application Middleware. The middleware lets you define custom function to be run before rendering a page or a group of pages (layouts)

  • pages/ - this directory contains your application routes. We rely on Nuxt's builtin routing

  • plugins/ - this directory contains your custom plugins for Nuxt

  • static/ - the static files directory. These files are not processed by any loaders and just copied as-is

  • store/ - this directory contains your Vuex Store files

  • shims/ - this directory contains TypeScript declaration files, feel free to extend it with your own types

Tests

  • fixtures/ - this folder contains utility files that are used for testing

  • .eslintrc.js - this file extends linting rules for testing

  • jest-shims.d.ts - file to import TypeScript types into current context

Last updated