- 发布于
npm升级依赖
- Authors
- Name
- 田中原
npm升级依赖
目录
🤡项目创立时间久了,如果依赖长期不升级,当想使用依赖库的最新特性或不得不进行升级时,相当于挖了n年的坑一起填。
🤪在第一家公司工作经验尚浅,后来遇到一次不得不进行的依赖升级,结果版本升级跨度较大导致需要修改的地方过多,不得不花费大量时间投入。
😭即便更改完毕,还需要对整个项目进行回归测试,整个过程简直不要太酸爽。
从此之后就养成了定时定期升级依赖的习惯,在此记录一下升级依赖的步骤和工具。
依赖升级带来的好处
- 可维护性提高👍,一般三方依赖库的官方文档是最新的,过时的语法或版本会被丢到小角落,及时更新能避免照着旧文档写半天报错的问题
- 写起来爽😎,依赖库提供的新特性能及时开箱使用,对于程序员来说这相当于买了最新的电子产品到手啦!
- 安全可靠🚔,代码都是人写的,三方库也无法避免一些bug和漏洞,及时更新能排除许多隐患(正义必将邪恶绳之以法!)
依赖升级要操作的步骤
- 先评估项目依赖,列个优先级,优先处理核心。(一次性升级一时爽,升级完火葬场)
- 挨个升级,优先查看对应库是否存在帮助升级的工具,并查看依赖的changelog,重点关注是否有break-change
- 实践一下升级并记录升级中出现的问题和解决方案
- 代码变动的方案,分发给参与升级任务的小伙伴一起过一下(如果牵扯的投入太大,不如写个gulp脚本之类的自动化解析替换一下,重复的工作交给机器做,相关产出也可以留存给类似项目使用)
- 全部升级完成,合并分支进行回归测试!!!一定要覆盖所有涉及修改的页面和功能。
小总结:所以项目维护从来都不是一件简单的事情,依赖升级要投入的精力是不小的。长期维护的项目还是非常有必要进行依赖升级的。
依赖升级相关工具
上面简述了一下升级依赖要做的工作。以下记录一些常用来检查依赖的工具和命令
npm-check-updates
# 安装工具
npm install npm-check-updates -g
# 不想全局安装可以使用npx
npx npm-check-updates
# 进入项目目录
ncu
# 更新到最新
nuc -u
# 更新全部依赖到最新
nuc -a
# 交互模式选择升级
ncu -i
# 过滤模式,升级所有react-开头的依赖
ncu react-*
ncu "/^react-.*$/"
# 排除nodemon, 升级其他依赖
ncu \!nodemon
ncu -x nodemon
ncu --reject nodemon
npm-check-updates
列出的可升级的依赖会按照颜色区分
- 主版本升级major upgrade
- 小版本升级 minor upgrade
- 补丁升级 patch upgrade
处理大版本升级通常会有break-change,最好是到大版本号升级的github release页面查看一下break change的说明。通常会列出需要改动的地方。