package.json 和package-lock.json

两者联系

自npm5.0版本发布以来,npm i 的规则发生了三次变化。

  • npm 5.0版本,不管package.json怎么变,npm i都会根据package-lock.json下载。
  • npm 5.1.0版本后,npm i会无视lock文件去下载最新的包
  • npm5.4.2版本后:
    如果package.json和package-lock.json文件版本不同,会根据package.json中的版本号以及语义去下载包,并更新lock文件;
    如果两者版本号相同则会根据package-lock.json中的版本号去下载。

package.json中你的版本号规则

  • 1.波浪号〜匹配最新补丁版本号,也就是版本号的第三个数字。比如~1.2.3将匹配所有1.2.x版本,但将在1.3.0上停止。

  • 2.插入符号^ 更宽松。 它匹配的是最新次要版本号,也就是第二个数字。比如:^ 1.2.3将匹配任何1.x.x版本,包括1.3.0,但将在2.0.0上停止。

  • 3.版本号前面是星号*,那意思就是匹配任何版本。

  • 4.版本号的值是latest,那意思安装的永远是最新发布的版本。

你可能感兴趣的:(package.json 和package-lock.json)