栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

为什么“ npm install”会重写package-lock.json?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

为什么“ npm install”会重写package-lock.json?

更新3: 正如其他答案所指出的那样,

npm ci
npm
5.7.0中引入了该命令,作为在CI上下文中实现快速且可复制的构建的其他方法。有关更多信息,请参见文档和npm博客。


更新2:
更新和澄清文档的问题是GitHub第18103号。


更新1: 以下描述的行为已在npm
5.4.2中修复:GitHub问题#17979中概述了当前预期的行为。


原始答案: 的行为

package-lock.json
已在问题#16866中在npm
5.1.0中更改。从5.1.0版开始,您观察到的行为显然是npm预期的。

也就是说,只要在中找到依赖项的更新版本,

package.json
就可以覆盖。如果要有效地固定依赖项,则现在必须指定不带前缀的版本,例如,您需要用代替或编写它们。然后,和的组合将生成可复制的构建。需要明确的是:仅凭它不再锁定根级别依赖项!
package-lock.json``package.json``1.2.0``~1.2.0``^1.2.0``package.json``package-lock.json``package-lock.json

不管这个设计决定是好的还是不可行的,在GitHub上的问题#17979上引起了持续的讨论。(在我看来,这是一个值得怀疑的决定;至少这个名称

lock
不再适用。)

还有一点注意事项:对于不支持不可变软件包的注册表也有一个限制,例如当您直接从GitHub而不是npmjs.org提取软件包时。有关进一步的说明,请参阅此包锁文档。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/409711.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号