瞎扯淡 package-lock.json that doesn't lock

mizuhashi · 2017年11月09日 · 最后由 5long 回复于 2017年11月09日 · 1046 次阅读

转自 https://twitter.com/javan/status/905194268297441285

根据图中的 stackoverflow 回答 ,npm 5.1.0 之后,package-lock.json 只锁定那些无前缀的声明,如1.2.0,而不包括^1.2.0。npm 的这个操作依旧是让人看不懂,有锁定需求的还是继续 yarn 吧....

======update======

发现这个"issue"在 5.4.2 被修复,现在能锁了....

行为如 Issue#17979最后一个回复

这个行为能在 5.1 版(严格来说是 5.0 就希望引入,但由于 bug 被推迟到 5.1)被引入,就给我感觉 NPM 的开发团队有点不太靠谱。

应用的依赖管理这件事,有 Bundler 先行推广的 Gemfile{,.lock} 模式,其他包管理器如 Pipenv、Cargo 等也都跟着效仿,而且几乎见不到有人对这个设计提出有效的反对,那么看上去这个设计就足够好,NPM 这边只要效仿着做就可以了。毕竟不是去挑战什么未知领域的高端问题。

结果嘞,#16866 里面这么一吵,也不见 NPM 项目维护者拿出自己的观点来讨论讨论,也不考虑回应一下评论里提到的 npm update 行为不符合预期的问题,就直接在 #17058 给“fix”了,甚至在 code review 过程里也没人质疑,估计是私下讨论达成一致意见了吧。

反正我是先去用 Yarn 算了。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号