Win11 WSL2 Ubuntu中Node.js 18默认设置重启终端失效的问题求助
解决WSL2 Ubuntu中nvm默认Node.js版本不生效的问题
步骤1:排查系统级Node.js干扰
先确认是不是系统通过apt安装的Node.js(16版本)优先级比nvm的更高:
- 执行命令查看Node的路径:
which node- 如果输出是
/usr/bin/node,说明存在系统级Node,会覆盖nvm的设置
- 如果输出是
- 卸载系统级Node:
sudo apt remove --purge nodejs npm sudo apt autoremove sudo apt clean - 重启终端后执行
node -v,再重新设置默认版本:nvm alias default 18
步骤2:确认nvm初始化脚本加载正常
nvm需要在shell启动时自动加载初始化脚本,检查对应shell的配置文件:
- 如果你用bash,打开配置文件:
nano ~/.bashrc;用zsh的话打开nano ~/.zshrc - 确认文件末尾有以下初始化代码:
export NVM_DIR="$HOME/.nvm" [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # 加载nvm [ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # 加载nvm自动补全 - 如果没有就手动添加,保存后执行
source ~/.bashrc(zsh用source ~/.zshrc),再执行nvm alias default 18
步骤3:检查是否有脚本覆盖版本设置
查看.bash_profile、.profile这类shell启动配置文件,有没有手动写nvm use 16或者设置NODE_VERSION的命令,有的话改成18或者直接删除。
步骤4:重新确认nvm别名设置
执行以下命令确保别名配置正确:
nvm alias default 18 nvm alias # 查看所有别名,确认default指向18
然后完全关闭所有终端(包括VS Code的集成终端),重新打开后再用node -v验证。
步骤5:VS Code集成终端额外检查
如果VS Code里的终端还是异常:
- 打开VS Code设置,搜索
terminal.integrated.profiles.linux,确认Ubuntu的shell路径是/bin/bash或/bin/zsh(对应你用的shell) - 彻底关闭VS Code后重启,再打开集成终端测试
内容的提问来源于stack exchange,提问作者CB_at_Sw
相关产品推荐
相关产品推荐

