У меня следующая структура:
apps
|-api
|-src
|-_migrations
|-_seeds
|-dev
|-test
|-app
|-assets
|-environments
|-main.ts
|-tsconfig.app.json
|-tsconfig.json
Я использую ng serve api
для компиляции и обслуживания api
, который является бэкэндом Nest JS. Это принадлежит монорепо с Angular интерфейсом.
Миграции и сеялки внутри _migrations
и _seeds
выполнены в TypeScript. Чтобы запустить их при обслуживании бэкэнда, мне нужно скомпилировать их в JavaScript и найти скомпилированные файлы в dist/apps/api
.
Я знаю, что могу скомпилировать файлы с помощью tsc
перед отправкой или указать Файл конфигурации webpack в angular.json
, но я бы хотел сделать его максимально простым и просто попытаться использовать некоторую конфигурацию с ng
.
Я попытался добавить пути в 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"]
}
Есть ли способ компилировать все файлы в _migrations
и _seeds
при запуске ng serve api
и ng build api
просто переключении какой-либо конфигурации или аналогичной?
Если нет, то какая из простейших конфигураций веб-пакета была бы для этого?