我正在开发两个npm软件包,例如@ffx/alpha
和@ffx/beta
。 Beta软件包取决于Alpha软件包。
alpha/package.json
{
"name": "@ffx/alpha",
"version": "1.0.0",
"dependencies": {},
"devDependencies": {
"some-package": "1.0.0"
}
}
beta/package.json
{
"name": "@ffx/alpha",
"version": "1.0.0",
"peerDependencies": {
"@ffx/alpha": "^1.0.0"
},
"devDependencies": {
"some-package": "1.0.0"
}
}
对于本地测试,我正在构建Alpha项目并使用以下命令在Beta项目根目录中安装构建的代码,
npm install ../alpha/dist/@ffx/alpha
此外,我开始以监视模式构建Alpha项目,以便Alpha项目中的代码更改立即反映在Beta项目中(在node_modules内部)。
我的问题是,在某些情况下,我在Alpha和Beta项目中都使用了相同的依赖关系(上述设置中的{some-package
),Beta项目获得了相同程序包的错误引用并引发了错误。
示例: 说Alpha项目有以下代码,
...
let smpkg = new SomePackage();
...
在Beta项目中,它将引发错误,提示类型不匹配。
错误TS2322:类型'import(“〜/ alpha / node_modules / some-package”)。SomePackage'不能分配给类型'import(“〜/ beta / node_modules / some-package”)。SomePackage '。
是否可以使用此方法对齐两个引用?
还是在发布之前在本地使用软件包的另一种方法?
注意:我已经尝试了npm link
和npm pack
的混合结果。