我有两个角度库 NPM 包:
- A有基本组成部分
- A-BC具有基于A中的组件构建的组件,并具有与BC库集成的附加功能
A-BC
导入中的A
一些组件import { MyThing } from 'A';
A-BC
的 package.json 是:
"peerDependencies": {
"A": 1.0.0,
"BC": 4.0.0
},
"devDependencies": {
"A": 1.0.0,
"BC": 4.0.0
}
我尝试的开发步骤是:
npm link --only=production
在(的内置版本)A
npm link --only=production
在(的内置版本)A-BC
- 在
my-app
,运行npm link A
- 在
my-app
,运行npm link A-BC
- 跑
my-app
找不到安装在任何地方时编译my-app
失败。它们都以符号链接文件夹的形式正确列在彼此旁边。我已经在and中启用了这个,但这没有帮助。A-BC
A
node_modules
preserveSymlinks
tsconfig.json
angular.json
A
可能是 的直接依赖项A-BC
,但是:
- 两者都有一个调用
A
,该调用对于安装它的应用程序正常运行所需的包。我不知道如何将参数动态地从A-BC
forRoot()
forRoot()
A-BC
forRoot()
A
forRoot()
my-app
需要使用来自A
AND 的组件的组件A-BC
。- 如果
A
是直接依赖项,我不知道如何在A-BC
本地进行开发——这可能涉及同时更改A-BC
和偶尔更改A
.
目前我的创可贴解决方案是:
- 发布
A
为测试版 A-BC
在和中安装测试版my-app
- 链接
A-BC
到my-app
通过npm link
A
如果需要进行更改,则发布新的测试版,my-app
然后A-BC
反复安装
通过 NPM 对本地文件的支持进行安装可能有另一种工作流程A
,但我不确定。