WSL 2中执行ng命令始终返回‘This: not found’问题求助
解决WSL 2中Angular CLI命令报错的问题
你的问题出在WSL 2调用了Windows系统安装的Node.js/npm,两者环境不兼容,导致全局安装的Angular CLI关联的Windows Node脚本在WSL的bash环境下无法解析,才会出现This: not found的错误。
按以下步骤解决:
第一步:在WSL 2内部独立安装Node.js
别依赖Windows的Node版本,推荐两种安装方式:
方式一:通过包管理器安装(以Ubuntu为例)- 更新系统包列表:
sudo apt update - 安装Node.js和npm:
sudo apt install nodejs npm - 把npm升级到最新版本:
sudo npm install -g npm
方式二:用nvm(Node版本管理器)安装(可灵活切换Node版本)
- 在WSL终端执行nvm安装脚本:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash - 重新加载shell配置文件(根据你的shell类型选择):
# bash用户执行 source ~/.bashrc # zsh用户执行 source ~/.zshrc - 安装Node的LTS长期支持版本:
nvm install --lts - 设置该版本为默认Node:
nvm alias default node
- 更新系统包列表:
第二步:在WSL环境下重新全局安装Angular CLI
- 先卸载可能关联的旧版本:
npm uninstall -g @angular/cli - 重新全局安装Angular CLI:
npm install -g @angular/cli
- 先卸载可能关联的旧版本:
第三步:验证修复效果
执行以下命令,能正常显示Angular CLI版本信息就说明问题解决了:ng version
额外提醒:如果WSL的环境变量PATH里Windows的Node路径排在前面,可能会再次调用Windows版本,建议调整优先级,让WSL自身的Node路径(比如~/.nvm/versions/node/vxx.x.x/bin或/usr/bin)排在Windows路径之前。
内容的提问来源于stack exchange,提问作者Molly Million
相关产品推荐
相关产品推荐

