nest 和 angular 应用程序之间的 Nrwl/Nx 依赖错误
Nrwl / Nx dependency error between nest and angular apps
我正在尝试使用 nrwl / nx 创建一个 monorepo 项目。
我遵循了 nx 网站上的教程,并执行了以下步骤:
创建空工作区
npx create-nx-workspace
创建一个名为 frontendangular 的应用程序
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的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;
我正在尝试使用 nrwl / nx 创建一个 monorepo 项目。 我遵循了 nx 网站上的教程,并执行了以下步骤:
创建空工作区
npx create-nx-workspace
创建一个名为 frontendangular 的应用程序
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的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;