为何Node.js在PowerShell已更新但Ubuntu上版本未更新?
这是系统PATH路径优先级问题:n 工具默认将Node.js安装到 /usr/local/bin 目录下,但你当前系统中旧版Node.js的安装路径在PATH中的排序更靠前,终端会优先加载匹配到的第一个Node可执行文件,所以显示的还是旧版本号。
确认路径优先级
先执行以下命令查看当前终端调用的Node实际路径:which node
再执行以下命令查看n工具安装的Node路径:ls /usr/local/bin/node
如果which node返回的路径不是/usr/local/bin/node,即可确认是PATH优先级问题。临时生效测试
执行以下命令临时调整PATH优先级,测试版本是否可以正常切换:export PATH=/usr/local/bin:$PATH
调整后执行node -v,如果返回v16.13.0说明调整有效。永久生效配置
将PATH调整规则写入终端配置文件,重启终端也会生效:
若使用bash终端,执行:echo 'export PATH=/usr/local/bin:$PATH' >> ~/.bashrc && source ~/.bashrc
若使用zsh终端,执行:echo 'export PATH=/usr/local/bin:$PATH' >> ~/.zshrc && source ~/.zshrc可选:清理旧版本
确认不需要v15.13.0版本后,可执行命令卸载系统自带的旧版Node.js:sudo apt remove --purge nodejs -y
如果调整PATH后版本还是没有切换,检查是否曾经安装过nvm版本管理器:
执行command -v nvm如果有返回结果,说明nvm接管了Node版本管理,可直接执行nvm install 16.13.0 && nvm alias default 16.13.0切换到对应版本即可。
内容的提问来源于stack exchange,提问作者Alx_Wil95

