我有一个项目,它由一个根节点包组成,其中包含通过npm link链接在一起的子包 - 这些子包相互依赖(在 package.json 依赖项中列出),结构基本上如下所示:
-rootpackage
--subpackageA
--subpackageB
假设 subpackageA 依赖于 subpackageB,所以我链接它们以避免在 subpackageB 的源每次更改后在 subpackageA 中发布/重新安装 subpackageB。该链接工作正常,直到我npm update
在 subpackageA 中运行,这导致 subpackageB 被取消链接。
现在,我看到两个选项:
- 理论上,我可以
npm link
在每个操作之后运行该操作,npm install
或者npm update
确保链接始终存在。这适用postinstall
于安装的情况,但在更新的情况下postinstall
不会调用。我不知道 npm 的任何postupdate命令,该命令将在更新后调用。 - 也许有一种方法可以更巧妙地做到这一点,也许使用yarn,我也在使用它,在某种程度上,它可以防止取消链接或排除我的子包的更新,所以我不会丢失我的子包之间的链接,但现在我不知道这种方式。
有什么方法可以使这些选项之一起作用或任何其他方法来解决这个问题?我需要保留此链接和其他链接,这样我们就不必npm link
在每次安装/更新后运行。我真的无法在任何地方找到有关此问题的信息。顺便说一句,我使用的是 Node 6.4.0 和 NPM 3.10.3。