Javascript 使用Angular CLI编译NX Workspace NestJS项目时,始终编译某些文件
我有一个项目,它被设置为nx工作区,其中包括一个名为sync的NestJS项目。我尝试在Lambda上使用多个函数,我在NX工作区之外使用它,它编译完整的目录,但是在NX工作区中它编译成main.js文件,其中不包括两个Lambda文件,这两个文件调用NestJS框架 我认为问题在于:Javascript 使用Angular CLI编译NX Workspace NestJS项目时,始终编译某些文件,javascript,angular,angular-cli,monorepo,Javascript,Angular,Angular Cli,Monorepo,我有一个项目,它被设置为nx工作区,其中包括一个名为sync的NestJS项目。我尝试在Lambda上使用多个函数,我在NX工作区之外使用它,它编译完整的目录,但是在NX工作区中它编译成main.js文件,其中不包括两个Lambda文件,这两个文件调用NestJS框架 我认为问题在于: "sync": { "root": "apps/sync", "sourceRoot": &
"sync": {
"root": "apps/sync",
"sourceRoot": "apps/sync/src",
"projectType": "application",
"prefix": "sync",
"schematics": {},
"architect": {
"build": {
"builder": "@nrwl/node:build",
"options": {
"outputPath": "dist/apps/sync",
"main": "apps/sync/src/main.ts",
"tsConfig": "apps/sync/tsconfig.app.json",
"assets": ["apps/sync/src/assets"],
"scripts": ["apps/sync/src/app/lambdas/**/*"]
},
"configurations": {
"production": {
"optimization": true,
"extractLicenses": true,
"inspect": false,
"fileReplacements": [
{
"replace": "apps/sync/src/environments/environment.ts",
"with": "apps/sync/src/environments/environment.prod.ts"
}
]
}
}
},
"serve": {
"builder": "@nrwl/node:execute",
"options": {
"buildTarget": "sync:build"
}
},
"lint": {
"builder": "@angular-devkit/build-angular:tslint",
"options": {
"tsConfig": [
"apps/sync/tsconfig.app.json",
"apps/sync/tsconfig.spec.json"
],
"exclude": ["**/node_modules/**", "!apps/sync/**/*"]
}
},
"test": {
"builder": "@nrwl/jest:jest",
"options": {
"jestConfig": "apps/sync/jest.config.js",
"tsConfig": "apps/sync/tsconfig.spec.json",
"passWithNoTests": true
}
}
}
始终基于此文件编译JS文件:
import { Logger } from '@nestjs/common';
import { NestFactory } from '@nestjs/core';
import { AppModule } from './app/app.module';
declare const module: any;
async function bootstrap() {
const app = await NestFactory.create(AppModule, {
logger: ['log', 'error', 'warn', 'debug', 'verbose'],
});
const port = process.env.PORT || 3010;
await app.listen(port, () => {
Logger.log('Listening at http://localhost:' + port);
});
if (module.hot) {
module.hot.accept();
module.hot.dispose(() => app.close());
}
}
bootstrap();
但是,我需要包括两个文件,因为它们运行每个函数:
import { Handler } from 'aws-lambda';
import { NestFactory } from '@nestjs/core';
import { AppModule } from '../app.module';
import { FooController } from '../foo/foo.controller';
async function bootstrap() {
const app = await NestFactory.createApplicationContext(AppModule);
return app;
}
export const syncFooHandler: Handler = async (event) => {
const app = await bootstrap();
const fooService = app.get(FooController);
return await fooService.sync(event);
};
但是这些文件不包括在编译的main.js
文件中
import { Handler } from 'aws-lambda';
import { NestFactory } from '@nestjs/core';
import { AppModule } from '../app.module';
import { BarController } from '../bar/bar.controller';
async function bootstrap() {
const app = await NestFactory.createApplicationContext(AppModule);
return app;
}
export const syncStudentsHandler: Handler = async (event) => {
const app = await bootstrap();
const barService = app.get(BarController);
return await barService.sync(event);
};