如何一键升级npm包

3,658 阅读2分钟

项目中的一些npm太旧了,几乎几年的时间都没有更新过。很久之前我想过,当这些npm在不断地更新升级的时候,package.json中依赖的包有这么多,大约十几二十几个,这还是你看到的,如何更新升级。下面先补下 npm install一些相关的命令

npm install 常用参数

  • npm install: 模块会安装到node_modules文件夹下面,显示在package.json下面的dependencies

  • -D,--save-dev: 模块会安装到node_modules文件夹下面,同样显示在devDependencies

  • -S,--save: 模块会安装到node_modules文件夹下面,同样显示在dependencies

  • -g,--global

  • -P,--save-prod: 和 npm install 一样

  • -O, --save-optional:(从未用过诶)模块会安装到node_modules文件夹下面,显示在package.json里面的optionalDependencies

  • --no-save: 阻止保存在dependencies

  • -E, --save-exact:(未用过诶)保存一个精确的版本在dependencies,而不是使用npm’s default semver range operator

  • -B, --save-bundle: (未用过诶) 保存在bundledDependencies里面

更多关于npm install 的参数,点击docs.npmjs.com/cli/install

升级npm 包

1、 npm outdated 查看你旧的包到底有哪些

2、 安装npm-check-updates

$ npm install -g npm-check-updates
$ ncu
$ ncu -u

也可以局部更新

$ ncu one, two, three

官方地址 www.npmjs.com/package/npm…

3、npm update

据个人实践,有时输入这个命令并没有反应,不知道咋回事,有时只是更新了 dependencies,当然也可以加-D的参数。我理解到的是,它更新的规则不是直接更新到最新的包,而是根据caret dependencies插入依赖符^和Tlide dependencies~波浪依赖符的匹配规则

以下是官网截图

4、 前面用的是npm,现在说说用yarn

  • 查看已经过期的

yarn outdated

  • 升级

yarn upgrade [package]... --latest|-L [--caret | --tilde | --exact] [--pattern]

eg

yarn upgrade @formily/antd --latest 

对某个几个包升级

yarn upgrade (--scope|-S) @scope [--latest] [--pattern]

比如:

yarn upgrade --scope @formily --latest

yarn upgrade xx --latest,亲测,注意只对major版本有效

  • 最保险的办法 yarn upgrade-interactive

可以自由选择

image.png

image.png

yarn

5、 版本号的规则 MAJOR,MINOR PATCH 比如1.4.2

  • 1 是 major version,表示是一个大的版本,可能向后不兼容;
  • 4 是minor version,表示增加了新的功能,并且可以向后兼容;
  • 2 是patch version,修复bug,向后兼容

6、 更新有风险,谨慎操作

更多链接: semvernpm-updatenpm升级所有可更新包