【发布时间】:2021-06-05 13:45:07
【问题描述】:
我在 Nx monorepo 工作区工作。工作区结构如下:
api 是 NestJS 应用,data-access-scripts-execute 是 NestJS 库。
我不知道应该如何在我的 api 应用程序中导入和使用提到的 lib 控制器。以下是我的代码:
api的AppModule:
import { Module } from '@nestjs/common';
import { ConfigModule, ConfigService } from '@nestjs/config';
import { MongooseModule } from '@nestjs/mongoose';
import { AppController } from './app.controller';
import { AppService } from './app.service';
// This line says 'Cannot find module '@something/data-access-scripts-execute'
// or its corresponding type declarations.'
import { SomeController } from '@something/data-access-scripts-execute';
@Module({
imports: [
ConfigModule.forRoot({ isGlobal: true, expandVariables: true }),
MongooseModule.forRootAsync({
imports: [ConfigModule],
inject: [ConfigService],
useFactory: async (configService: ConfigService) => ({
uri: 'mongodb://localhost/something',
useFindAndModify: false,
}),
}),
],
controllers: [AppController],
providers: [AppService],
})
export class AppModule {}
lib 的控制器:
import { Controller, Post } from '@nestjs/common';
import { SomeService } from './some.service';
import { SomeEntity } from './schemas/some.schema';
@Controller('some-address')
export class SomeController {
constructor(private readonly _service: SomeService) {}
@Post()
async create(): Promise<SomeEntity> {
console.log('create called');
return this._service.create();
}
}
我还应该提到:
- 我所有的 Angular 库都可以看到其他 Angular 库
- 我的 api 应用可以看到我所有的 Angular 库
- 我所有的 NestJS 库都看不到其他库
- 我所有的 NestJS 库都不能被其他库和应用看到
see 这个词实际上是指@something 我的项目名称。
以下也是我的tsconfig.base.json 文件,它位于工作区的根目录中:
{
"compileOnSave": false,
"compilerOptions": {
"rootDir": ".",
"sourceMap": true,
"declaration": false,
"moduleResolution": "node",
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"importHelpers": true,
"target": "es2015",
"module": "esnext",
"lib": ["es2017", "dom"],
"skipLibCheck": true,
"skipDefaultLibCheck": true,
"baseUrl": ".",
"paths": {
"@something/system": ["libs/system/src/index.ts"],
"@something/feature-some-angular-lib": [
"libs/feature-some-angular-lib/src/index.ts"
],
"@something/feature-some-angular-lib": [
"libs/feature-some-angular-lib/src/index.ts"
],
"@something/shared": ["libs/shared/src/index.ts"],
"@something/data-access-scripts-execute": ["libs/data-access-scripts-execute/src/index.ts"]
}
},
"exclude": ["node_modules", "tmp"]
}
我还应该说,由于隐私原因,图像并不完整。
【问题讨论】:
标签: javascript reactjs angular monorepo nrwl-nx