package-lock.json的作用:
锁版本,确保项目在后续拉去中,安装依赖包时依赖包的版本始终是统一的
在npm install时会自动生成package-lock.json
package.json与package-lock.json相同时,npm安装包时以package-lock.json为准,当两者不同时,npm install时会以package.json为准,并同时更新package-lock.json(未经过本人验证)。
没必要锁版本时可以不用package-lock.json锁版本。
package-lock.json与package.json的不同:
package-lock.json记录的是依赖树,记录了依赖模块之间的完整依赖关系。package.json记录的是依赖项,不能锁定依赖的依赖。
额外补充:
npm vs yarn:
它们都是包管理工具,npm是node默认的包版本工具。
yarn的出现最早是为了解决npm的缺点:下载依赖慢、不能确保的版本统一等问题。
yarn与npm最重要的几点不同:
yarn是并行安装依赖模块,npm是按队列形式安装前面的包安装完成后面的包才能安装;
yarn对已经安装过的包会有缓存,npm每次安装都需要去网上下载。
升级后的npm与yarn一样,也具备了锁版本的功能&