【发布时间】:2020-07-03 10:34:54
【问题描述】:
我有以下结构:
apps
|-api
|-src
|-_migrations
|-_seeds
|-dev
|-test
|-app
|-assets
|-environments
|-main.ts
|-tsconfig.app.json
|-tsconfig.json
我正在使用 ng serve api 编译和服务 api 这是一个 NestJS 后端。这属于带有 Angular 前端的 monorepo。
_migrations 和 _seeds 中的迁移和播种器在 TypeScript 中。要在服务后端时运行它们,我需要将它们编译为 JavaScript,并将编译后的文件定位到 dist/apps/api。
我知道我可以在服务之前用tsc 编译文件,或者在angular.json 中指定一个webpack 配置文件,但我想保持它尽可能简单,并尝试使用@987654329 的一些配置@。
我尝试在tsconfig.app.json 中添加路径,该路径在angular.json 中使用。
// angular.json
"api": {
"root": "apps/api",
"sourceRoot": "apps/api/src",
"projectType": "application",
"prefix": "api",
"schematics": {},
"architect": {
"build": {
"builder": "@nrwl/node:build",
"options": {
"outputPath": "dist/apps/api",
"main": "apps/api/src/main.ts",
"tsConfig": "apps/api/tsconfig.app.json",
"assets": ["apps/api/src/assets"]
},
"configurations": {
"production": {
"optimization": true,
"extractLicenses": true,
"inspect": false,
"fileReplacements": [
{
"replace": "apps/api/src/environments/environment.ts",
"with": "apps/api/src/environments/environment.prod.ts"
}
]
}
}
},
"serve": {
"builder": "@nrwl/node:execute",
"options": {
"buildTarget": "api:build"
}
}
}
}
// tsconfig.app.json
{
"extends": "./tsconfig.json",
"compilerOptions": {
"outDir": "../../dist/out-tsc",
"types": ["node"]
},
"exclude": ["**/*.spec.ts"],
"include": ["**/*.ts"], // or ["**/*.ts", "src/_migrations/*.ts", "src/_seeds/**/*.ts"] without "files"
"files": ["src/_migrations/*.ts", "src/_seeds/**/*.ts"]
}
在运行ng serve api 和ng build api 时,是否有办法编译_migrations 和_seeds 中的所有文件,只需切换一些配置或类似配置?
如果没有,实现这一点的最简单的 webpack 配置是什么?
【问题讨论】:
标签: angular typescript nestjs