This project was generated using Nx.
- SvelteKit as the frontend framework
- NestJS as the backend framework
- Jest as the unit testing framework
- Playwright as the e2e testing framework
- TypeScript as the programming language
- ESLint as the code style checker
- Prettier as the code formatter
- PostCSS as the CSS preprocessor
- TailwindCSS as the CSS framework
- Svelte HeadlessUI as the UI library
- Svelte Heroicons as the icon library
- Docker for containerization
- SemVer for release versioning
- Code Climate for code coverage report
🔎 Smart, Fast and Extensible Build System
Nx supports many plugins which add capabilities for developing different types of applications and different tools.
These capabilities include generating applications, libraries, etc as well as the devtools to test, and build projects as well.
Below are plugins used:
-
npm install --save-dev @nxext/sveltekit
-
npm install --save-dev @nxext/svelte
-
npm install --save-dev @nrwl/nest
-
npm install --save-dev @nx-tools/nx-docker
-
npm install --save-dev @jscutlery/semver
There are also many community plugins you could add.
When using Nx, you can create multiple applications and libraries in the same workspace.
Run nx g @nxext/sveltekit:application $app-name
to generate a SvelteKit application.
Run nx g @nrwl/nest:app $app-name
to generate a Nest application.
Libraries are shareable across libraries and applications. They can be imported from @nx-monorepo/$lib-name
.
Due to issue sveltejs/kit#2973, you will need to add a
package.json
file to the root of your library that SvelteKit want to import. You may duplicate the content of thepackage.json
file of other library and change the name.
Run nx g @nxext/svelte:library $lib-name
to generate a Svelte component library.
Run nx g @nrwl/nest:library $lib-name
to generate a Nest library.
Resource
Run nx g @nrwl/nest:resource $resource-name
to generate a Nest resource.
Resource consist of module, controller, service, dto and entities for basic CRUD process.
Module
Run nx g @nrwl/nest:module $module-name
to generate a Nest module.
Controller
Run nx g @nrwl/nest:controller $controller-name
to generate a Nest controller.
Service
Run nx g @nrwl/nest:service $service-name
to generate a Nest service.
Resolver
Run nx g @nrwl/nest:resolver $resolver-name
to generate a Nest resolver.
Gateway
Run nx g @nrwl/nest:gateway $gateway-name
to generate a Nest gateway.
Middleware
Run nx g @nrwl/nest:middleware $middleware-name
to generate a Nest middleware.
Interceptor
Run nx g @nrwl/nest:interceptor $interceptor-name
to generate a Nest interceptor.
Filter
Run nx g @nrwl/nest:filter $filter-name
to generate a Nest filter.
Guard
Run nx g @nrwl/nest:guard $guard-name
to generate a Nest guard.
Pipe
Run nx g @nrwl/nest:pipe $pipe-name
to generate a Nest pipe.
Decorator
Run nx g @nrwl/nest:decorator $decorator-name
to generate a Nest decorator.
Class
Run nx g @nrwl/nest:class $class-name
to generate a Nest class.
Alternatively, you can use
--project=$lib-name
to skip the prompt for the library name.
Run nx g lib $lib-name
to generate a functional library.
Run nx g @nxext/svelte:component $component-name --project=$lib-name
to generate a new component.
Run npm run serve
for a dev server. Navigate to http://localhost:3000/. The app will automatically reload if you change any of the source files.
Run npm run build
to build the project. The build artifacts will be stored in the dist/
directory.
Run npm run test
to execute the tests for all the projects.
Run nx affected:test
to execute the tests affected by a change.
Run nx graph
to see a diagram of the dependencies of your projects.
Visit the Nx Documentation to learn more.