Skip to main content

Nx Bootstrap

# Rpg Monorepo

## Commandes

- npm init
- npm i -D typescript ts-node @types/node standard-version @compodoc/compodoc eslint prettier
- npx tsc init
- npm i -D nx
- npx nx init
- npm i -D @nx/angular
- npx nx g @nx/angular:app client --routing --style=scss --standalone --ssr=false
- npx nx g @nx/workspace:move --project client apps/client
- npx nx g @nx/workspace:move --project client-e2e apps/client-e2e
- npm i -D @nx/nest
- npx nx g @nx/nest:app api
- npm i @nestjs/config @nestjs/typeorm typeorm pg class-validator class-transformer
- npx nx g @nx/workspace:move --project api apps/api
- npx nx g @nx/workspace:move --project api-e2e apps/api-e2e
- npx nx g @nx/node:app realtime
- npm i colyseus @colyseus/schema ioredis
- npx nx g @nx/workspace:move --project realtime apps/realtime
- npx nx g @nx/workspace:move --project realtime-e2e apps/realtime-e2e

## Libs

- exemple :
  `npx nx g @nx/js:lib LAYER --directory=libs/DOMAIN/LAYER --importPath=@rpg/libs/DOMAIN-LAYER --tags="scope:lib,layer:LAYER,domain:DOMAIN" --bundler=tsc --linter=eslint --unitTestRunner=vitest --minimal --no-interactive`
- `npx nx g @nx/js:lib types --directory=libs/common/types --importPath=@rpg/libs/types --tags="scope:lib,layer:types,domain:common" --bundler=tsc --linter=eslint --unitTestRunner=vitest --minimal --no-interactive`
- `npx nx g @nx/js:lib ids --directory=libs/common/ids --importPath=@rpg/libs/ids --tags="scope:lib,layer:types,domain:common" --bundler=tsc --linter=eslint --unitTestRunner=vitest --minimal --no-interactive`
- `npx nx g @nx/js:lib constants --directory=libs/common/constants --importPath=@rpg/libs/constants --tags="scope:lib,layer:constants,domain:common" --bundler=tsc --linter=eslint --unitTestRunner=vitest --minimal --no-interactive`
- `npx nx g @nx/js:lib helpers --directory=libs/common/helpers --importPath=@rpg/libs/helpers --tags="scope:lib,layer:helpers,domain:common" --bundler=tsc --linter=eslint --unitTestRunner=vitest --minimal --no-interactive`
- `npx nx g @nx/js:lib server-constants --directory=libs/config/server-constants --importPath=@rpg/libs/config-server-constants --tags="scope:lib,layer:constants,domain:config" --bundler=tsc --linter=eslint --unitTestRunner=vitest --minimal --no-interactive`
- `npx nx g @nx/js:lib constants --directory=libs/ui/constants --importPath=@rpg/libs/ui-constants --tags="scope:lib,layer:constants,domain:ui" --bundler=tsc --linter=eslint --unitTestRunner=vitest --minimal --no-interactive`
- `npx nx g @nx/js:lib types --directory=libs/auth/types --importPath=@rpg/libs/auth-types --tags="scope:lib,layer:types,domain:auth" --bundler=tsc --linter=eslint --unitTestRunner=vitest --minimal --no-interactive`
- `npx nx g @nx/js:lib types --directory=libs/user/types --importPath=@rpg/libs/user-types --tags="scope:lib,layer:types,domain:user" --bundler=tsc --linter=eslint --unitTestRunner=vitest --minimal --no-interactive`
- `npx nx g @nx/js:lib contracts --directory=libs/user/contracts --importPath=@rpg/libs/user-contracts --tags="scope:lib,layer:contracts,domain:user" --bundler=tsc --linter=eslint --unitTestRunner=vitest --minimal --no-interactive`
- `npx nx g @nx/js:lib server --directory=libs/user/server --importPath=@rpg/libs/user-server --tags="scope:lib,layer:server,domain:user" --bundler=tsc --linter=eslint --unitTestRunner=vitest --minimal --no-interactive`
- `npx nx g @nx/js:lib types --directory=libs/character/types --importPath=@rpg/libs/character-types --tags="scope:lib,layer:types,domain:character" --bundler=tsc --linter=eslint --unitTestRunner=vitest --minimal --no-interactive`
- `npx nx g @nx/js:lib server --directory=libs/character/server --importPath=@rpg/libs/character-server --tags="scope:lib,layer:server,domain:character" --bundler=tsc --linter=eslint --unitTestRunner=vitest --minimal --no-interactive`
- `npx nx g @nx/js:lib rng --directory=libs/rng --importPath=@rpg/libs/rng --tags="scope:lib,layer:server,domain:rng" --bundler=tsc --linter=eslint --unitTestRunner=vitest --minimal --no-interactive`
- `npx nx g @nx/js:lib constants --directory=libs/world/constants --importPath=@rpg/libs/world-constants --tags="scope:lib,layer:constants,domain:world" --bundler=tsc --linter=eslint --unitTestRunner=vitest --minimal --no-interactive`
- `npx nx g @nx/js:lib types --directory=libs/world/types --importPath=@rpg/libs/world-types --tags="scope:lib,layer:types,domain:world" --bundler=tsc --linter=eslint --unitTestRunner=vitest --minimal --no-interactive`
- `npx nx g @nx/js:lib helpers --directory=libs/world/helpers --importPath=@rpg/libs/world-helpers --tags="scope:lib,layer:helpers,domain:world" --bundler=tsc --linter=eslint --unitTestRunner=vitest --minimal --no-interactive`
- `npx nx g @nx/js:lib contracts --directory=libs/content/contracts --importPath=@rpg/libs/content-contracts --tags="scope:lib,layer:contracts,domain:content" --bundler=tsc --linter=eslint --unitTestRunner=vitest --minimal --no-interactive`
- `npx nx g @nx/js:lib runtime-server --directory=libs/content/runtime-server --importPath=@rpg/libs/content-runtime-server --tags="scope:lib,layer:runtime-server,domain:content" --bundler=tsc --linter=eslint --unitTestRunner=vitest --minimal --no-interactive`
- `npx nx g @nx/js:lib runtime-client --directory=libs/content/runtime-client --importPath=@rpg/libs/content-runtime-client --tags="scope:lib,layer:runtime-client,domain:content" --bundler=tsc --linter=eslint --unitTestRunner=vitest --minimal --no-interactive`

## Tools

In folder `tools/`:

- `npx nx g @nx/node:app content-builder`
- `npx nx g @nx/node:app content-tables`