依赖分类

依赖根据开发环境需要和实际运行环境需要,分为dependenciesdevDependencies
例如:typescripteslint属于devDependencies,而vueaxios等属于dependencies

版本号组成

版本由两部分组成,一是前面的前缀符号,二是版本号
这里先介绍版本号。

版本号

版本号的形式是:a.b.c

  • a:主要版本(major version),代表一次重大更改,通常不会兼容旧版本,即发生breaking change;更新主要版本通常意味着需要将项目代码向新版本进行迁移,典型的案例是vue2vue3的升级;
  • b:次要版本(minor version),代表这个新版本有新的功能(new features),不包括breaking change,通常可以无痛升级,但是可能伴随着新的bug;
  • c:补丁版本(patch version),代表这个版本是为了修复bug发布的。

前缀部分

前缀符号的含义:

  • ^:表示接受补丁版本和次要版本,这个符号是默认值;
  • ~:表示只接受补丁版本,更稳妥;

区间相关的前缀符号:

  • >:表示接受大于该版本号的所有版本
  • 类似的还有:<>=<=
  • -:例如1.0.0 - 2.0.0,闭区间;
  • ||:组合集合,例如1.0.0 || >=1.1.0 <1.2.0,表示使用1.0.0版本或者使用从1.1.0开始但低于1.2.0的版本。

检查包的版本

npm outdated可以检查当前的包是否有过时的版本,会在控制台输出一个表格,其中包含了项目的所有直接依赖的相关版本信息。
主要需要关注的列是CurrentWantedLatest

  • Current:当前项目所使用的版本;
  • Wanted:根据版本号前缀,可接受的最新版本;
  • Latest:这个依赖目前已发布的最新版本;

更新包的版本

npm update [-g] [<pkg>...]
根据package.json中配置的版本号前缀,将所有的依赖(或者指定的依赖)更新到可以接受的最新版本。