如何在一个工作区内将库中的库发布到 NPM (singlerepo) nx nrwl
How to publish a library inside library to NPM within one workspace (singlerepo) nx nrwl
我有一个工作区,其中包括 apps/sandbox 文件夹中的一个应用程序和 libs 文件夹中的两个库。
我有这两个库:
@workspace/library library and @angular/nrwl to NPM
- libs/ui
- libs/cdk-ui
我需要将 ui
库发布到 NPM,但它使用 cdk-ui
,我只想发布一个而不是两个库作为 NPM 部门。
如何实现?
我希望在我输入 'npm install @ccc/ui' 后,两个库都能像往常一样工作,而无需任何单独的发布。
如果需要任何额外的解释,请告诉。
更新:
我在这方面遇到过:
https://github.com/nrwl/nx/issues/225#issuecomment-373668866
但是缺乏关于如何做的很好的解释。
真的有人做过吗?
您可以通过在您的 UI 库的 package.json 上编写自定义脚本来扩展您的 npm 发布命令,该脚本运行 cdk/ui 库 build你的 ui build 命令然后复制你的 build 库,第一个里面有“cpx”。
为了实现它们最终位于同一位置和目录中,您必须更改“cdk/ui”的 tsconfig.lib.json:特别是 cdk/ui 的 outDir(应该与另一个匹配)
所以基本上在你的 UI 的 package.json 你有这样的东西:
{
"build-library": "ng build ui && npm run build-cdk-ui",
"publish": "npm run build-library && npm run publish-dist",
"build-cdk-ui": "tsc -p yourFolderForCDK-ui/tsconfig.lib.json && cpx your-resulted-dist dist/the-dist-you-want-to-put"
}
为 UI 触发 ng build(创建一个 dist 文件夹),然后你执行 ng build cdk/ui,这将该 dist 在其他带有 cpx 库的 dist 文件夹中,您应该安装然后发布该文件夹。
我有一个工作区,其中包括 apps/sandbox 文件夹中的一个应用程序和 libs 文件夹中的两个库。
我有这两个库:
@workspace/library library and @angular/nrwl to NPM
- libs/ui
- libs/cdk-ui
我需要将 ui
库发布到 NPM,但它使用 cdk-ui
,我只想发布一个而不是两个库作为 NPM 部门。
如何实现? 我希望在我输入 'npm install @ccc/ui' 后,两个库都能像往常一样工作,而无需任何单独的发布。
如果需要任何额外的解释,请告诉。
更新: 我在这方面遇到过: https://github.com/nrwl/nx/issues/225#issuecomment-373668866
但是缺乏关于如何做的很好的解释。 真的有人做过吗?
您可以通过在您的 UI 库的 package.json 上编写自定义脚本来扩展您的 npm 发布命令,该脚本运行 cdk/ui 库 build你的 ui build 命令然后复制你的 build 库,第一个里面有“cpx”。
为了实现它们最终位于同一位置和目录中,您必须更改“cdk/ui”的 tsconfig.lib.json:特别是 cdk/ui 的 outDir(应该与另一个匹配)
所以基本上在你的 UI 的 package.json 你有这样的东西:
{
"build-library": "ng build ui && npm run build-cdk-ui",
"publish": "npm run build-library && npm run publish-dist",
"build-cdk-ui": "tsc -p yourFolderForCDK-ui/tsconfig.lib.json && cpx your-resulted-dist dist/the-dist-you-want-to-put"
}
为 UI 触发 ng build(创建一个 dist 文件夹),然后你执行 ng build cdk/ui,这将该 dist 在其他带有 cpx 库的 dist 文件夹中,您应该安装然后发布该文件夹。