我是 nrwl nx cli 的新手,并且在他们的文档中进行了广泛搜索,但找不到将 nestjs 模块生成为 lib 而不是 app 中的实际模块的命令。
我想将nestjs模块创建为lib的原因是因为我的mono repo中有几个nestjs应用程序,并且如果我必须共享代码(在我的情况下是模块),则根据nrwl nx指南,它必须是一个lib .
任何人都可以分享命令来执行以下操作:-
- 在库中生成 nestsjs 模块
- 在 libs 文件夹中为该模块创建 nestjs 服务
任何帮助深表感谢。
我得到了最终完成这项工作的命令,并与其他需要帮助的包共享
ng generate @nestjs/schematics:library mynestlib
引用 Nx Workspace官方文档:
创建一个库向 Nx 工作区添加新库是通过使用 Angular CLI 生成命令完成的,就像添加一个新应用程序一样。
ng generate lib mylib ng generate library mylib # same thing这将创建一个新库,将其放在 libs 目录中,并将配置
angular.json文件nx.json以支持新库。运行
ng generate lib --help以查看可用选项的列表。
ng generate lib mylib --directory=myteam将在libs/myteam/mylib.
如果--directory未定义,它会询问您应该在哪个目录中生成它,以及应该使用什么框架(Angular 或 TS)。
如果它不起作用,请,也许你应该检查你的 Nx 版本,还有你的angular.json.
@nrwl/schematics不能作为这个问题提到的默认集合。
角.json
"cli": {
"defaultCollection": "@nrwl/schematics",
"packageManager": "yarn"
},
我最近遇到了同样的问题。
虽然@Atul Chaudhary 可以用不同的方式解决这个问题,但我可以在这个评论之后解决我的问题
所以基本上,您只需将一个新nest-cli.json文件添加到您的nx 工作区根文件夹并根据您的项目结构指定这些基本信息。
nest-cli.json基本例子{
"collection": "@nestjs/schematics",
"sourceRoot": "apps/api/src"
}
希望它可以帮助一些人:)