我遇到与this question中描述的情况类似的情况。基本上,我正在开发2个节点模块,比如A
和B
,其中A
取决于B
。
对于本地开发人员,我将两个项目克隆并利用npm link
将全局B
与npm link B
关联到A的本地node_modules
。现在,B
会自动使用对A
的任何更改。大。
然而,问题是有时开发人员在进行本地开发时会忘记npm link
,并最终安装B
的最新官方版本。通常情况下,这恰好工作,因为B
并不总是会发生显着变化,但有时会以微妙的方式失败,我们会得到无效的错误报告和混淆的开发人员。
我应该如何为package.json
构建A
,以便开发者在克隆B
时被迫使用最新的A
?
一个想法是在发布后修改B的版本号,然后要求,这不能从npm安装。虽然这可行,但这意味着你必须为master上未发布的工作提出任意版本号,并且仍然不会阻止开发人员忘记将这两个项目更新到最新等等。
其他人正在使用哪些策略/约定来帮助进行此类设置?你是否将依赖项设置为git urls?你使用npm hooks吗?