在Maven中,如果模块 A 取决于模块 B 。在本地更改 B 时,可以轻松地使用 mvn install (对于 B )将 B 部署到本地存储库,因此 A 可以获取更新的 B ,而无需从远程存储库下载。这非常有效。
但是,在NPM世界中,我找不到对应的东西。我有软件包 A 依赖于 B ,在开发期间,我经常更改 B ,我当然不想运行 npm发布进行每个更改。这很慢,并且向公众发布部分完成的软件包 B 没有任何意义。
我知道NPM支持local dependency,但是这种方式没有什么缺点:
- 每次切换到开发人员模式时,您都必须更改 package.json ,并记住在准备就绪时改回官方依赖项。这非常繁琐且容易出错。
- 即使使用本地部门,您也必须为 B 运行 npm build 进行打包,并为 A运行 npm升级。 strong>,这是一个非常痛苦且缓慢的过程
我想找到一种有效的方法来满足以下要求:
- 切换到开发人员模式时, package.json 上没有任何更改。
- 理想情况下,只要在 B 中更改源文件, A 无需其他步骤即可查看 B 的更改。 > A 应该会立即看到更新。
- 如果不可能2,则至少该过程应快速且无摩擦。
我的想法是应该有一个简单的NPM注册中心开发代理,在开发期间,NPM连接到该代理。默认情况下,它从上游注册表下载软件包。我们可以配置它,因此对于特定的依赖关系例如 B ,它将从指定目录下载,例如本地 B 的dist目录。因此,我们绝不会碰到A的package.json。
在这个问题上是否有类似的解决方案或其他更好的建议?