1、package.json文件:定义了项目中的依赖、项目配置等信息。但其中指定的依赖包版本号一般都不够具体。
2、package-lock.json文件:最初没有该文件,执行 npm install 命令时,根据package.json文件生成的,会有精确的依赖包的版本号。如果该文件存在,重新执行 npm install 命令时,就会使用package-lock.json中的依赖版本。
3、package.json中的版本号:大版本.小版本.查漏补缺版本
-
指定版本:具体的版本。比如
1.2.2
,安装时只安装指定版本。 -
波浪号(
tilde
)+指定版本:大版本.小版本 必须相同。比如~1.2.2
,表示安装1.2.x
的最新版本(不低于1.2.2
),但是不安装1.3.x
,也就是说安装时不改变大版本号和小版本号。 -
插入号(
caret
)+指定版本:大版本 必须相同。比如ˆ1.2.2
,表示安装1.x.x
的最新版本(不低于1.2.2
),但是不安装2.x.x
,也就是说安装时不改变大版本号。需要注意的是,如果大版本号为 0,则插入号的行为与波浪号相同,这是因为此时处于开发阶段,即使是小版本号变动,也可能带来程序的不兼容。 -
latest:最新的版本。
参考:
深入理解 package.json 文件与 package-lock.json 文件