发布于

npm升级依赖

Authors
  • avatar
    Name
    田中原
    Twitter

npm升级依赖

目录

🤡项目创立时间久了,如果依赖长期不升级,当想使用依赖库的最新特性或不得不进行升级时,相当于挖了n年的坑一起填。

🤪在第一家公司工作经验尚浅,后来遇到一次不得不进行的依赖升级,结果版本升级跨度较大导致需要修改的地方过多,不得不花费大量时间投入。

😭即便更改完毕,还需要对整个项目进行回归测试,整个过程简直不要太酸爽。

从此之后就养成了定时定期升级依赖的习惯,在此记录一下升级依赖的步骤和工具。

依赖升级带来的好处

  1. 可维护性提高👍,一般三方依赖库的官方文档是最新的,过时的语法或版本会被丢到小角落,及时更新能避免照着旧文档写半天报错的问题
  2. 写起来爽😎,依赖库提供的新特性能及时开箱使用,对于程序员来说这相当于买了最新的电子产品到手啦!
  3. 安全可靠🚔,代码都是人写的,三方库也无法避免一些bug和漏洞,及时更新能排除许多隐患(正义必将邪恶绳之以法!)

依赖升级要操作的步骤

  1. 先评估项目依赖,列个优先级,优先处理核心。(一次性升级一时爽,升级完火葬场)
  2. 挨个升级,优先查看对应库是否存在帮助升级的工具,并查看依赖的changelog,重点关注是否有break-change
  3. 实践一下升级并记录升级中出现的问题和解决方案
  4. 代码变动的方案,分发给参与升级任务的小伙伴一起过一下(如果牵扯的投入太大,不如写个gulp脚本之类的自动化解析替换一下,重复的工作交给机器做,相关产出也可以留存给类似项目使用)
  5. 全部升级完成,合并分支进行回归测试!!!一定要覆盖所有涉及修改的页面和功能。

小总结:所以项目维护从来都不是一件简单的事情,依赖升级要投入的精力是不小的。长期维护的项目还是非常有必要进行依赖升级的。

依赖升级相关工具

上面简述了一下升级依赖要做的工作。以下记录一些常用来检查依赖的工具和命令

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的说明。通常会列出需要改动的地方。