当固定到git分支时,npm的缓存究竟是如何工作的?

时间:2016-07-27 21:23:05

标签: npm

我们遇到了一个非常有趣的边缘案例,我认为我会发布这个案例,看看是否有人可以为此提供一些启示。

我们有一个项目通过git repo url固定到npm模块:

dependencies: {
  "whatever": "git+ssh://whatever@whatever.com/whatever#bugfix/foo"
}

我们有两个分支机构:

bugfix/foo
bugfix/updated-foo

第二个分支bugfix/updated-foobugfix/foo的倒数第二次提交时被bugfix/foo重新绑定。

在两个分支中,version中的package.json设置为5.0.2,因为它们都来自master。我们的最新版本是5.0.2

最后,我的问题: npm是否根据version中指定的package.json缓存模块?我们看到的行为是,有时一个分支将是在建造项目时检查,其他时间检查。

这让我们感到困惑,因为我们假设分支名称在此场景中被用作唯一标识符。

谢谢!

1 个答案:

答案 0 :(得分:0)

在吹掉我的缓存然后在其中一个分支中碰撞版本之后,我能够看到节点模块确实被submitTime中的version密钥缓存而不是分支名称正如我们之前所想的那样。

有道理我们为什么会看到一些奇怪的事情!

谢谢:)