升级步骤

其实升级的话比较简单,直接使用 nvm 进行升级即可,主要是要针对升级后的项目做一些验证,这里主要记录需要验证的一些点及遇到的一些问题和解决方案。

升级基础包及问题总结的文章会有一定的时效性,比如现在遇到的一些问题,过段时间官方进行升级了或者出了更好的方案,那目前这个文章里记录的可能就不太适用了,所以仅做参考

主要分为两步,第一步是在本地做验证,第二步是升级发布系统的环境,然后做线上验证。

步骤一:本地环境升级 node18 后进行验证

使用 nvm 管理 node 的版本。

  1. npm install NEW_VERSION

    nvm install 18.13.0
    nvm alias default v18.13.0
  2. Reinstall related dependencies
    2.1.针对单独的项目而言,直接执行

    rm -rf node_modules
    rm -rf package.lock.json
    npm install 

    2.2 还有一些包是安装在全局的,当然可以等遇到报错 xx not found 的时候再单独手动安装,也可以直接执行下面命令避免手动重新安装所有的全局包。
    具体可参考 How to properly upgrade node using nvm

    nvm install NEW_VERSION --reinstall-packages-from=OLD_VERSION
    
    // eg: nvm install 18.13.0 —reinstall-packages-from=14.20.0

步骤二:发布系统切换 node18

1、发布系统服务器升级 node18
2、在本地验证通过后,在发布系统进行发布后,线上运行正常

验证过程及范围

本地

按照上述升级步骤在本地执行以下脚本是否可以正常运行

  • npm install
  • npm run dev
  • npm run build

线上

  • 确认线上部署方案

    • 如果是 docker 则直接修改 node 的依赖版本
    • 修改部署脚本的 node 版本
  • 执行上线部署脚本可以正常运行

升级过程中遇到的一些问题

  1. npm i 报错 ERESOLVE could not resolve 或RESOLVE unable to resolve dependency tree(无法解析依赖关系树)
  2. npm run build / start 报错 Error:error:0308010C:digital enveloperoutines::unsupported
  3. centos7 环境 使用node18 的报错

具体的问题表现和解决方案可以看另一篇文章node14升级node18的问题总结

参考


IOneStar
3.1k 声望1.9k 粉丝