package.json与package-lock.json的区别
Posted 天天向上吧
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了package.json与package-lock.json的区别相关的知识,希望对你有一定的参考价值。
- 使用npm5之前的版本,是不会生成package-lock.json这个文件的。
- npm5以后,包括npm5这个版本,才会生成package-lock.json文件
- 当使用npm安装包的时候,npm都会生成或者更新package-lock.json文件
-
- npm5以后的版本,在安装包的时候,不需要加 --save(-s) 参数,也会自动在package.json中保存依赖项
- 当安装包的时候,会自动创建或者更新package-lock.json文件
- package-lock.json文件内保存了 node_modules中所有包的信息,包含这些包的名称、版本号、下载地址。带来好处是,如果重新 npm install 的时候,就无需逐个分析包的依赖项,因此会大大加快安装速度。
- 从 package-lock.json 文件名来看,lock代表的是“锁定”的意思。它用来锁定当前开发使用的版本号,防止npm install的时候自动更新到了更新版本。因为新版本有可能会更新老的api,导致之前的代码出错。
- 原来的 package.json 文件只能锁定大版本,也就是版本号的第一位,并不能锁定后面的小版本,你每次npm install都是拉取的该大版本下的最新的版本,为了稳定性考虑我们几乎是不敢随意升级依赖包的,这将导致多出来很多工作量,测试/适配等,所以package-lock.json文件出来了,当你每次安装一个依赖的时候就锁定在你安装的这个版本。
以上是关于package.json与package-lock.json的区别的主要内容,如果未能解决你的问题,请参考以下文章
Yarn Workspaces 和 Browserify - 子文件夹中的 package.json 会破坏构建
npm WARN saveError EPERM: operation not allowed, rename 'C:\...\package.json.3542172463' -> 'C:\.
Error:npm WARN enoent ENOENT: no such file or directory, open ‘C:UsersXXpackage.json‘son‘