项目中使用package-lock.json锁版本问题

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一样,也具备了锁版本的功能,可以保证在不同环境下拉取到的项目,在安装依赖包时,版本是一致的。

参考资料:

升级间接依赖:https://juejin.im/post/5b6908ba6fb9a04f9c43e7b8

谈yarn: https://www.bittiger.io/blog/post/BQGg7FzRPHjh84iu9

yarn vs npm:https://juejin.im/post/5b6908ba6fb9a04f9c43e7b8

yarn vs npm外文:https://blog.risingstack.com/yarn-vs-npm-node-js-package-managers/

package-lock.json冲突问题:https://www.jianshu.com/p/1d2e2f8c9ab2

原文地址:https://www.cnblogs.com/yy95/p/10441727.html