nest 和 angular 应用程序之间的 Nrwl/Nx 依赖错误

Nrwl / Nx dependency error between nest and angular apps

我正在尝试使用 nrwl / nx 创建一个 monorepo 项目。 我遵循了 nx 网站上的教程,并执行了以下步骤:

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

`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的import导致前端编译出错

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

终于找到答案了,

问题来自用于为猫鼬定义 shema 的装饰器。

装饰器与前面的库共享不兼容。

此处描述了一种解决方法:

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;