angular - Nrwl Nx:将库合并到可发布的库中
问题描述
我有一个 Nx 工作区,想构建两个 npm 包:一个用于 React,一个用于 Angular。两者都使用一些共享代码。
结构是这样的:
- 库
- 核
- 反应库
- 角库
如果我使核心库可发布并希望将 angular-lib 发布到 npm,我还需要发布核心包,这是我不想要的。
如果核心不可发布,我会得到文件 xxx.ts 不在“rootDir”下
有谁知道是否可以使用包含的数据库的使用代码创建一个 angular-lib 包?
这里的代码
解决方案
也许git submodules是你真正需要的。
因此,如果您不想推动“核心”,但希望该模块可在 react-lib 和 angular-lib 之间重用。您只需将 'core' 的 repo 作为子模块连接到 'react-lib' 和 'angular-lib' 的 repos 并具有如下文件结构
核心 - 有自己的 git 仓库
angular-lib - 有自己的 git repo 和“核心作为子模块”。
./src
./core - git 子模块
react-lib - 有自己的 git repo 和“核心作为子模块”
./src
./core - git 子模块
您可以使用单个命令“”更新整个 angular-lib,包括子目录“core git pull --recursive
”
从 angular 和 react 的角度来看,“core”只是一个子目录,您可以从那里导入源文件等。“ ng build
”将包含所有必要的内容到生成的包中。因此,来自“核心”的代码可以从 git 重用和更新,无需为此发布 npm 包。
或者 - 方法 #2 - 只需使用符号链接。在“angular-lib”和“react-lib”目录中创建指向“core”目录的符号链接。并从 ./core 导入源代码。'ng build' 将创建正确的包 - 它将包括文件副本,没有 symlynks。