管理开发人员对npm依赖项的临时本地依赖项更改的最佳方法

在Maven中,如果模块 A 取决于模块 B 。在本地更改 B 时,可以轻松地使用 mvn install (对于 B )将 B 部署到本地存储库,因此 A 可以获取更新的 B ,而无需从远程存储库下载。这非常有效。

但是,在NPM世界中,我找不到对应的东西。我有软件包 A 依赖于 B ,在开发期间,我经常更改 B ,我当然不想运行 npm发布进行每个更改。这很慢,并且向公众发布部分完成的软件包 B 没有任何意义。

我知道NPM支持local dependency,但是这种方式没有什么缺点:

  1. 每次切换到开发人员模式时,您都必须更改 package.json ,并记住在准备就绪时改回官方依赖项。这非常繁琐且容易出错。
  2. 即使使用本地部门,您也必须为 B 运行 npm build 进行打包,并为 A运行 npm升级。 strong>,这是一个非常痛苦且缓慢的过程

我想找到一种有效的方法来满足以下要求:

  1. 切换到开发人员模式时, package.json 上没有任何更改。
  2. 理想情况下,只要在 B 中更改源文件, A 无需其他步骤即可查看 B 的更改。 > A 应该会立即看到更新。
  3. 如果不可能2,则至少该过程应快速且无摩擦。

我的想法是应该有一个简单的NPM注册中心开发代理,在开发期间,NPM连接到该代理。默认情况下,它从上游注册表下载软件包。我们可以配置它,因此对于特定的依赖关系例如 B ,它将从指定目录下载,例如本地 B 的dist目录。因此,我们绝不会碰到A的package.json。

在这个问题上是否有类似的解决方案或其他更好的建议?

caojunyi 回答:管理开发人员对npm依赖项的临时本地依赖项更改的最佳方法

npm link似乎满足了您的大部分要求。

您不必更改package.json-它不会以任何方式影响它。一次运行npm link之后,对链接的程序包所做的所有更改都会立即显示在您的程序包中。因为它只更改您的node_modules文件夹,所以只要您不将其从dev携带到远程(无论如何都不要将其提交到版本控制),就无需记住任何更改。

每次更改为开发人员模式时,您可能仍必须运行npm link path/to/linked/package,但这是一个相当轻松的命令,不会从远程获得任何信息。

本文链接:https://www.f2er.com/3100029.html

大家都在问