赞
踩
package.json 里面定义的是版本范围(比如^1.0.0),具体跑npm install的时候安的什么版本,要解析后才能决定,这里面定义的依赖关系树,可以称之为逻辑树(logical tree)。
node_modules文件夹下才是npm实际安装的确定版本的东西,这里面的文件夹结构我们可以称之为物理树(physical tree)。
安装过程中有一些去重算法,所以你会发现逻辑树结构和物理树结构不完全一样。
package-lock.json可以理解成对结合了逻辑树和物理树的一个快照(snapshot),里面有明确的各依赖版本号,实际安装的结构,也有逻辑树的结构
在远程的git上如果有package-lock文件,就将各种依赖包都应用到固定版本号,这也就是之前安装某个新的包时会提醒你,哪个哪个包的版本号跟项目不匹配,而查找项目的package.json中只是限制某一个之上的版本号
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。