码迷,mamicode.com
首页 > Web开发 > 详细

package-lock.json和package.json区别

时间:2019-03-07 14:32:59      阅读:229      评论:0      收藏:0      [点我收藏+]

标签:tree   安装   logical   artifact   决定   文件夹   文档   code   wrap   

package.json里面定义的是版本范围(比如^1.0.0),具体跑npm install的时候安的什么版本,要解析后才能决定,这里面定义的依赖关系树,可以称之为逻辑树(logical tree)。

node_modules文件夹下才是npm实际安装的确定版本的东西,这里面的文件夹结构我们可以称之为物理树(physical tree)。

安装过程中有一些去重算法,所以你会发现逻辑树结构和物理树结构不完全一样。

package-lock.json可以理解成对结合了逻辑树和物理树的一个快照(snapshot),里面有明确的各依赖版本号,实际安装的结构,也有逻辑树的结构。

其最大的好处就是能获得可重复的构建(repeatable build),当你在CI(持续集成)上重复build的时候,得到的artifact是一样的,因为依赖的版本都被锁住了。在npm5以后,其内容和npm-shrinkwrap.json一模一样。

这些在npm官网文档都有详细解释。

package-lock.json和package.json区别

标签:tree   安装   logical   artifact   决定   文件夹   文档   code   wrap   

原文地址:https://www.cnblogs.com/ziyoublog/p/10489168.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!