typescript - NestJs: Varför packar monorepo-läge bara rotappen,
Jag har ett Nest-projekt uppsatt i monorepo-läge. Men när jag kör yarn build, lägger Nest endast rotappen i dist-mappen. Här är hur min projektstruktur ser ut:
.
└── cloud-kruser-backend
├── apps
│ ├── root-app
│ │ ├── src
│ │ └── test
│ └── hello
│ ├── src
│ └── test
└── dist
└── apps
└── root-app
Efter att ha kört yarn build skulle jag förvänta mig att dist innehåller både root-app och hello.
Här är de relevanta konfigurationsfilerna:
./nest-cli.json
{
"$schema": "https://json.schemastore.org/nest-cli",
"collection": "@nestjs/schematics",
"sourceRoot": "apps/root-app/src",
"monorepo": true,
"root": "apps/root-app",
"compilerOptions": {
"webpack": true,
"tsConfigPath": "apps/root-app/tsconfig.app.json"
},
"projects": {
"root-app": {
"type": "application",
"root": "apps/root-app",
"entryFile": "main",
"sourceRoot": "apps/root-app/src",
"compilerOptions": {
"tsConfigPath": "apps/root-app/tsconfig.app.json"
}
},
"hello": {
"type": "application",
"root": "apps/hello",
"entryFile": "main",
"sourceRoot": "apps/hello/src",
"compilerOptions": {
"tsConfigPath": "apps/hello/tsconfig.app.json"
}
}
}
}
./apps/root-app/tsconfig.app.json
{
"extends": "../../tsconfig.json",
"compilerOptions": {
"declaration": false,
"outDir": "../../dist/apps/root-app"
},
"include": ["src/**/*"],
"exclude": ["node_modules", "dist", "test", "**/*spec.ts"]
}
./apps/hello/tsconfig.app.json
{
"extends": "../../tsconfig.json",
"compilerOptions": {
"declaration": false,
"outDir": "../../dist/apps/hello"
},
"include": ["src/**/*"],
"exclude": ["node_modules", "dist", "test", "**/*spec.ts"]
}
Svar #1
nest build, liksom nest start, kommer i sig själv endast att köras på huvudappen. Om du behöver bygga en annan app också, behöver du använda nest build <app-namn>, t.ex. nest build hello