嵌套和角度应用程序之间的Nwl/Nx依赖性错误



我正试图通过nrwl/nx创建一个单回购项目。我遵循了nx网站上的教程,并完成了以下步骤:

  • 创建一个空的工作区

    npx create-nx-workspace

  • 创建一个名为前端的角度应用程序

    nx g @nrwl/angular:application

  • 创建名为backend 的嵌套应用程序

    nx g @nrwl/nest:application frontend

我想在后端和前端之间共享所有模型接口,所以我用命令创建了一个库:

`nx g @nrwl/workspace:lib data`

我在后端应用程序的数据库中使用了一个定义的模型接口,并使用@projectName/data导入,我可以构建和运行后端。

导致问题的类型定义是:

import { Prop, Schema, SchemaFactory } from '@nestjs/mongoose';
import { Document } from 'mongoose';
export type AgentDocument = Agent & Document;
@Schema()
export class Agent{
@Prop()
name : string
@Prop()
imgUrl : string;
}
export const AgentSchema = SchemaFactory.createForClass(Agent);

经过测试,是@nestjs/mongoose的导入导致了构建时前端的错误。

我可以告诉前端在导入模型时忽略此导入吗?

我终于找到了答案,

这个问题来自于装饰师用来为猫鼬定义shema。

装饰师不兼容前面的lib共享。

这里描述了一种变通方法:

https://github.com/nrwl/nx/issues/3322

但是,由于我的模型定义中使用了SchemaFactory对象,所以它不能完全与mongoose一起工作。

相反,我重写了我的模型,删除了这样的装饰器:

import * as mongoose from 'mongoose';
export interface Agent {
name : string,
imgUrl : string,
}
export const AgentSchema =  new mongoose.Schema({
name : String,
imgUrl : String,
})
export type AgentDocument = Agent & Document;

最新更新