使用n模块升级Node.js版本后执行node -v仍显示旧版本是什么原因?
Node.js版本未更新问题原因及解决方法
根本原因
该问题由系统PATH路径优先级冲突导致:你通过n工具安装的新版本Node.js的执行路径,排序在系统原有旧版本Node.js的执行路径之后,终端检索命令时会优先找到旧版本返回。
常见的具体触发场景:
- 此前通过apt等系统包管理器安装过旧版Node.js,它的执行文件存放在
/usr/bin/node或/usr/bin/nodejs路径下,而n工具默认会把新版本安装到/usr/local/bin/node路径 - 当前用户的PATH环境变量中,
/usr/bin的优先级高于/usr/local/bin - 终端存在命令缓存,未同步到新安装的执行文件路径
解决步骤
先确认当前调用的Node.js路径,执行命令:
which node
如果返回路径为/usr/bin/node,即可确认调用的是系统包管理器安装的旧版本。首先尝试刷新终端命令缓存,执行:
hash -r
完成后再运行node -v检查版本是否更新。若刷新缓存后仍显示旧版本,手动调整PATH优先级:
在你当前使用的shell配置文件(bash对应~/.bashrc,zsh对应~/.zshrc)末尾添加:export PATH=/usr/local/bin:$PATH
保存后执行source ~/.bashrc(或对应zsh的source ~/.zshrc)让配置生效。若以上操作都不生效,可以直接卸载系统预装的旧版本Node.js:
sudo apt remove nodejs nodejs-doc
卸载后即可正常识别n工具安装的新版本。
内容的提问来源于stack exchange,提问作者Sevicode
相关产品推荐
相关产品推荐

