架构师_程序员_码农网

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 6580|回复: 0

npm install 生成的package-lock.json是什么文件?

[复制链接]
发表于 2017-12-13 13:17:45 | 显示全部楼层 |阅读模式
对于npm修改node_modules树或package.json的任何操作,将自动生成package-lock.json。它描述了生成的确切树,以便后续安装能够生成相同的树,而不管中间依赖性更新如何。

这个文件旨在被提交到源代码库,并提供各种用途:

描述依赖关系树的单一表示,以保证队友,部署和持续集成确保安装完全相同的依赖关系。

为用户提供一个工具,使其能够“前进”到先前的node_modules状态,而不必提交目录本身。

通过可读的源代码控制差异来促进树更改的更大可见性。

并通过允许npm跳过先前安装的软件包的重复元数据分辨率来优化安装过程。

关于package-lock.json的一个关键细节是它不能被发布,并且如果在顶层包之外的任何地方被发现,它将被忽略。它与npm-shrinkwrap.json共享格式,它基本上是相同的文件,但允许发布。除非部署CLI工具或以其他方式使用发布过程来生产生产包,否则不建议这样做。

如果package-lock.json和npm-shrinkwrap.json都存在于一个包的根目录下,package-lock.json将被完全忽略。

原文链接:https://docs.npmjs.com/files/package-lock.json


npm 5.x 发布以来到现在的5.6.0 lock的作用变更过好多次,现在网上很多小白文都是停留在以前的文档翻译。

从npm3.x更新到了npm5,但是发现执行 `npm i ` 时的现象跟网络上的科普文不太一致。

有提到不管怎么修改package.json文件,重复执行npm i,npm都会根据lock文件描述的版本信息进行下载。

也有提到重复npm i时,npm会不顾lock的信息,根据package.json中的包Semantic versioning 版本信息下载更新模块(lock貌似没啥用了)。

**查阅资料得知,自npm 5.0版本发布以来,npm i的规则发生了三次变化。**

1、npm 5.0.x 版本,不管package.json怎么变,npm i 时都会根据lock文件下载

package-lock.json file not updated after package.json file is changed · Issue #16866 · npm/npm     https://github.com/npm/npm/issues/16866
这个 issue 控诉了这个问题,明明手动改了package.json,为啥不给我升级包!然后就导致了5.1.0的问题...

2、5.1.0版本后 npm install 会无视lock文件 去下载最新的npm

然后有人提了这个issue why is package-lock being ignored? · Issue #17979 · npm/npm      https://github.com/npm/npm/issues/17979
控诉这个问题,最后演变成5.4.2版本后的规则。

3、5.4.2版本后  why is package-lock being ignored? · Issue #17979 · npm/npm     https://github.com/npm/npm/issues/17979


大致意思是,如果改了package.json,且package.json和lock文件不同,那么执行`npm i`时npm会根据package中的版本号以及语义含义去下载最新的包,并更新至lock。

如果两者是同一状态,那么执行`npm i `都会根据lock下载,不会理会package实际包的版本是否有新。






上一篇:做报表统计,补充没有数据的时间方法
下一篇:npm教程(4):在本地安装npm包
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

免责声明:
码农网所发布的一切软件、编程资料或者文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:help@itsvse.com

QQ|手机版|小黑屋|架构师 ( 鲁ICP备14021824号-2 )|网站地图

GMT+8, 2024-3-29 07:11

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表