项目中的一些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
可以自由选择
5、 版本号的规则 MAJOR,MINOR PATCH
比如1.4.2
- 1 是
major version,表示是一个大的版本,可能向后不兼容; - 4 是
minor version,表示增加了新的功能,并且可以向后兼容; - 2 是
patch version,修复bug,向后兼容
6、 更新有风险,谨慎操作
更多链接: semver、 npm-update、 npm升级所有可更新包