首先说一下包版本的控制
假设 package.json
的包版本如下
"dependencies": {
"vue": "^2.5.0",
"vuex": "~3.1.0",
"vue-router": "3.5.3",
"react": "15.4.x",
"typescript": "3.x.x",
"react-dom": "*.*.*",
"react-draggable": "x.x",
"classnames": "x",
"pinia": "*"
}
执行安装后得到的版本如图所示
分析
vue ^2.5.0
=>vue 2.6.14
vuex ~3.1.0
=>vuex 3.1.3
vue-router 3.5.3
=>vue-router 3.5.3
react 15.4.x
=>react 15.4.2
typescript 3.x.x
=>typescript 3.9.10
react-dom *.*.*
=>react-dom 17.0.2
react-draggable x.x
=>react-draggable 4.4.4
classnames x
=>classnames 2.3.1
pinia *
=>pinia 2.0.12
通过上述安装后得到的版本可得知
^
开头的版本会固定首个大版本,后面的两个小版本会更新到最新,如vue ^2.5.0
=>vue 2.6.14
~
开头的版本会前两个版本,后面的小版本会更新到最新vuex ~3.1.0
=>vuex 3.1.3
- 不带符号,直接写版本号会安装固定的版本
vue-router 3.5.3
=>vue-router 3.5.3
- 最小的版本设置为
x
或者*
,其最小的版本号会更新到最新react 15.4.x
=>react 15.4.2
- 依次类推任何一位版本设置为
x
或者*
,其当前位置的版本号都会更新到最新 - 永远保持最新版本可以将版本号设置为
x
或者*
,如pinia *
=>pinia 2.0.12
npm-check-updates 包的作用
将你的 package.json
依赖升级到最新版本,忽略指定的版本。
安装
代码语言:javascript复制npm install -g npm-check-updates
检查 package.json 的最新依赖项
代码语言:javascript复制ncu
显示当前目录中项目的所有最新依赖项(不包括 peerDependencies
):
查看单个包的最新版本
代码语言:javascript复制ncu vue
更新 package.json 的最新依赖项
代码语言:javascript复制ncu -u
更新单个依赖
代码语言:javascript复制ncu -u vue
查看全局的安装包最新版本
代码语言:javascript复制ncu -g
使用通配符
检查某一个包
代码语言:javascript复制ncu vuex
ncu -f vuex
ncu --filter vuex
检查某一类的包
代码语言:javascript复制ncu 'vue*'
ncu "/^react*$/"
检查除某个包以外的所有包
代码语言:javascript复制ncu !vue
ncu -x vue
ncu --reject vue
检查特定的几个包
代码语言:javascript复制ncu vue vuex
ncu vue,vuex
ncu -f "vue vuex"
检查不以 react
开头的包
ncu !'react*'
同理,更新的话只要在上面的每个语句后面加上 -u