我们遇到了一个非常有趣的边缘案例,我认为我会发布这个案例,看看是否有人可以为此提供一些启示。
我们有一个项目通过git repo url固定到npm模块:
dependencies: {
"whatever": "git+ssh://whatever@whatever.com/whatever#bugfix/foo"
}
我们有两个分支机构:
bugfix/foo
bugfix/updated-foo
第二个分支bugfix/updated-foo
在bugfix/foo
的倒数第二次提交时被bugfix/foo
重新绑定。
在两个分支中,version
中的package.json
设置为5.0.2
,因为它们都来自master
。我们的最新版本是5.0.2
。
最后,我的问题: npm是否根据version
中指定的package.json
缓存模块?我们看到的行为是,有时一个分支将是在建造项目时检查,其他时间检查。
这让我们感到困惑,因为我们假设分支名称在此场景中被用作唯一标识符。
谢谢!
答案 0 :(得分:0)
在吹掉我的缓存然后在其中一个分支中碰撞版本之后,我能够看到节点模块确实被submitTime
中的version
密钥缓存而不是分支名称正如我们之前所想的那样。
有道理我们为什么会看到一些奇怪的事情!
谢谢:)