使用 NX Monorepo 从另一个库导入构建库
Posted
技术标签:
【中文标题】使用 NX Monorepo 从另一个库导入构建库【英文标题】:Building library with imports from another library using NX Monorepo 【发布时间】:2019-11-24 12:38:09 【问题描述】:情况就是这样。我正在使用 Nrwl NX Monorepo。我有 2 个库 lib-a 和 lib-b 都是通过 NX 创建的可发布库。现在我在 lib-a 中创建了一个 MyClass.ts。在workspace/tsconfig.json 路径下,NX 自然会为此lib-a 创建一个别名(“@workspace/lib-a”:[“libs/lib-a/src/index.ts”])。到目前为止,一切都很好。 现在我们可以在工作空间/monorepo 中的任何地方使用这个类,方法是将它导入 "import MyClass from '@workspace/lib-a';
不幸的是,我们无法构建导入 MyClass 的 lib-b。当我们尝试这样做时,我们会收到以下错误。所以问题是我们如何构建 lib-b ?
PS NX monorepo 实际上不支持链接 2 个可发布库的这种常见场景,这似乎很奇怪。
"错误 TS6059: 文件 "d:/workspace/libs/lib-a/src/index.ts" 不在 'rootDir' "d:\workspace\libs\lib-b\src" rootDir 下包含所有源文件”
【问题讨论】:
【参考方案1】:尝试添加
"paths": "@workspace/*": ["dist/libs/*"]
到您的 tsconfig.lib.json 文件中。这应该可以解决问题。
【讨论】:
以上是关于使用 NX Monorepo 从另一个库导入构建库的主要内容,如果未能解决你的问题,请参考以下文章
构建启用了Ivy的monorepo Angular9库是个坏主意
在 Ubuntu 上构建库,在 Arch 上的项目中使用它 - 不构建
Angular 6 库:在 CI 管道中构建库以创建 lib 版本