当npm版本与Node.js版本不兼容时,会提示npm无法在旧版Node上运行。本文通过降级npm、brew升级Node无效后,最终采用nvm工具切换Node版本解决该问题。详细记录了nvm的安装、环境变量配置及指定Node版本安装步骤。
问题背景与报错分析
近期项目中涉及Node.js与npm的使用,在检查当前环境版本时遇到了报错信息。
node -v
npm -v
系统提示:ERROR: npm v9.6.2 is known not to run on Node.js v12.13.1. You'll need to upgrade to a newer Node.js version in order to use this version of npm. This version of npm supports the following node versions: `^14.17.0 || ^16.13.0 || >=18.0.0`. You can find the latest version at https://nodejs.org/.
经过多方排查,找到了Node.js与npm的版本对应关系图。
以往的版本 | Node.js
尝试降级npm与升级Node失败
首先尝试认为npm版本过高导致报错,于是将npm降级至较低版本,但问题依旧存在。
npm -g install npm@6.14.16
其次尝试通过brew安装并升级到新版Node.js以替换旧版本,然而该操作并未解决问题。
brew install node@16

使用nvm切换Node版本
最终确定解决思路:由于Node.js本身未报错而是npm报错,因此需要切换Node.js版本,这需要借助Node版本管理工具nvm。
nvm安装与环境配置
安装nvm
brew install nvm
查看nvm版本
nvm --version
详解第一步执行
nvm --version
//出现问题。去进行配置
zsh: command not found: nvm第二步:nvm配置
1.编辑文件~/.bash_profile
按下 i 键进入插入模式,粘贴以下配置内容
export NVM_DIR=~/.nvm
source $(brew --prefix nvm)/nvm.sh配置完成后,按Esc键退出插入模式,输入 :wq 保存并退出文件
执行命令:source ~/.bash_profile,若出现报错可暂时忽略,继续后续步骤
2.编辑文件~/.zshrc
按下 i 键进入插入模式,粘贴以下配置内容
export NVM_DIR=~/.nvm
source $(brew --prefix nvm)/nvm.sh配置完成后,按Esc键退出插入模式,输入 :wq 保存并退出文件,随后执行:source ~/.zshrc
3.编辑文件~/.profile
按下 i 键进入插入模式,粘贴以下配置内容
export NVM_DIR=~/.nvm
source $(brew --prefix nvm)/nvm.sh配置完成后,按Esc键退出插入模式,输入 :wq 保存并退出文件,随后执行:source ~/.profile
最后进行测试,执行:nvm --version,若显示版本号0.39.3,则说明配置成功。

安装指定Node版本并验证
四、通过nvm安装指定版本的Node.js
根据报错提示,Node.js版本必须为14.x、16.x或18.x及以上。
This version of npm supports the following node versions: `^14.17.0 || ^16.13.0 || >=18.0.0`. You can find the latest version at https://nodejs.org/.
因此,我们通过nvm安装Node.js版本16.13.0。
nvm install 16.13.0
最后再次检查结果

Node.js版本已成功升级,npm不再报错,升级完成。
到此这篇关于nodejs和npm版本不匹配:ERROR: npm v9.5.1 is known not to run on Node.js的文章就介绍到这了,更多相关node和npm版本不匹配内容请搜索本站以前的文章或继续浏览下面的相关文章希望大家以后多多支持本站!