我正在try 将我们的存储库迁移到由NX管理的单声道存储库.前端以Angular 书写,后端使用NodeJS/Express. 一开始,我想在两者中使用相同的接口.

为此,我创建了一个新的工作区(集成Monorepo,不确定这是否是最佳 Select ):

npx create-nx-workspace

在新的工作空间中,我添加了一个前端和后端应用程序:

npm install @nx/angular 
nx g @nx/angular:app frontend 
npm install @nx/express 
nx g @nx/express:app backend 

据我所知,在NX中,库用于可重用的代码.所以我的 idea 是为接口库生成一个库.

npm install @nx/workspace
nx generate @nx/workspace:library lib-interfaces 

不幸的是,我得到以下错误:

错误:无法解析@nx/workspace:库.

在中找不到生成器‘库’

.../workspace/node_modules/@nx/workspace/generators.json.

为此,我没有找到任何原因或解决方案,但我想,我可以使用@NX/ANGLING:

nx generate @nx/angular:library lib-interfaces 

So my Questions are:

  1. 这个库可以通过Express使用吗(因为它是由@NX/ANGING生成的)?
  2. 我怎样才能使用图书馆的Angular 和快捷性?

推荐答案

您可以使用以下命令为NX工作区中的接口生成库:

npx nx generate @nrwl/js:library lib-interfaces

它会询问您想要使用的测试库以及您想要如何构建它.通常情况下,jesttsc是你需要的.

您还可以在Flat --dry-run上运行该命令来测试输出,而不会影响您的存储库.

当您创建库时,根tsconfig.base.json文件将被更新,尤其是compilerOptions键中的path对象.

您将发现如下所示的新行:

{
  "compilerOptions": {
    "@organization-name/api-interfaces": ["libs/api-interfaces/src/index.ts"]
    }
}

因此,您可以按如下方式使用它:

import {Whatever} from '@organization-name/api-interfaces';

Angular相关问答推荐

*ngFor循环中令人困惑的Angular 行为

如何用ANGLE指令覆盖Html元素的数据绑定属性

声明Angular material 中按钮的自定义 colored颜色

存储服务存储在本地存储中,但无法检索到它

以17角表示的自定义元素

茉莉花-模板中调用了如何判断角管

从canActivate创建时,Angular material 对话框不接收MAT_DIALOG_DATA

如何以Angular 解析表单控件名称的无值访问器?

VS 2022 停留在运行 Angular 应用程序上

无法推送 Angular 项目 - Github

过滤 ngfor Angular 的计数

怎样在 Angular 2 或 4 中将输入字段设为只读?

如何在 Angular 4 中使用 Material Design 图标?

Angular 2:无法绑定到 x,因为它不是已知的本机属性

在 Angular 2 中打印 Html 模板

Angular 2 组件不是任何 NgModule 的一部分

错误:angular2 中没有 HttpHandler 的提供者

如何从指令访问主机组件?

Angular 4.3 HttpClient:拦截响应

使用 EventEmitter 传递参数