想要用Node 14运行项目却默认启动Node 12,如何配置固定使用Node 14?
问题根因
该现象由普通用户与root用户的PATH环境变量配置不一致导致:Node 14的可执行文件路径仅被加入root用户的PATH配置中,而普通用户的PATH里Node 12的安装路径优先级更高,因此普通用户调用时默认匹配Node 12,加sudo切换为root权限后就会匹配到Node 14。
解决步骤
第一步:确认两个Node版本的安装路径
- 执行普通用户路径查询命令:
which node,返回结果为Node 12的实际安装路径 - 执行root权限路径查询命令:
sudo which node,返回结果为Node 14的实际安装路径
可选方案1:修改普通用户PATH优先级(推荐,不影响全局配置)
把Node 14所在的bin目录加到普通用户PATH的最前面即可:
- 若使用bash shell,编辑
~/.bashrc文件,在末尾添加一行:export PATH="Node14的bin目录路径:$PATH",其中Node14的bin目录为上一步查询到的Node14路径去掉末尾的/node部分,例如查询到的路径是/usr/bin/node,就填/usr/bin - 若使用zsh shell,编辑
~/.zshrc文件,添加同上内容 - 执行配置生效命令:
source ~/.bashrc(使用zsh则替换为source ~/.zshrc) - 执行
node -v验证版本是否已切换为14
可选方案2:修改全局软链接(适用于需要所有用户默认使用Node14的场景)
直接修改系统级软链接指向Node14即可:
- 执行软链接修改命令:
sudo ln -sf <上一步查到的Node14完整路径> /usr/local/bin/node - 同步修改npm软链接:
sudo ln -sf $(dirname <上一步查到的Node14完整路径>)/npm /usr/local/bin/npm - 执行
node -v验证版本即可
可选方案3:通过NVM安装的Node版本专属解决方案
如果你的Node是通过NVM安装的,该问题一般是普通用户的NVM默认版本未切换导致:
- 普通用户下执行
nvm ls查看已安装的Node版本,若存在v14版本,直接执行nvm alias default v14.x.x(替换为实际安装的14的完整版本号)即可 - 若普通用户的NVM中无v14版本,先执行
nvm install 14,再执行上一步的alias命令
内容的提问来源于stack exchange,提问作者Gaurav
相关产品推荐
相关产品推荐

