执行ng --version等ng命令时打开VS Code的ng.js文件,无法获取版本
解决ng命令触发VS Code打开ng.js而非执行命令的问题
问题根源
这种情况几乎都是Windows系统的.js文件关联错误导致的:系统把全局Angular CLI的ng.js脚本当成普通文本文件,用默认关联的VS Code打开,而不是调用Node.js去执行它。此外,Node.js全局脚本路径未加入系统PATH也可能加剧这个问题。
解决方案
1. 确认Node.js全局脚本路径在系统PATH中
- 打开终端(CMD/PowerShell),执行:
得到的路径(通常是npm config get prefixC:\Users\<你的用户名>\AppData\Roaming\npm)必须出现在系统环境变量的PATH中:- 右键「此电脑」→「属性」→「高级系统设置」→「环境变量」→ 在「系统变量」中找到
PATH,检查是否包含上述路径,若没有则添加,添加后必须重启所有终端。
- 右键「此电脑」→「属性」→「高级系统设置」→「环境变量」→ 在「系统变量」中找到
2. 修复.js文件的默认执行关联
以管理员身份打开CMD,依次执行以下命令:
# 将.js文件关联到Node.js执行 ftype JSFile=node.exe "%1" %* # 绑定.js后缀到JSFile类型 assoc .js=JSFile
执行完成后重启终端,测试ng --version是否正常输出。
3. 重新安装Angular CLI(确保全局安装无损坏)
依次执行以下命令:
# 卸载全局Angular CLI npm uninstall -g @angular/cli # 强制清理npm缓存 npm cache clean --force # 重新安装最新版全局Angular CLI npm install -g @angular/cli@latest
安装完成后执行ng version(Angular CLI v6+支持简化命令)验证结果。
4. 验证Node.js脚本执行能力
创建一个测试文件test.js,内容为:
console.log("Node.js脚本执行正常");
在终端执行test.js,若直接输出内容则说明文件关联修复成功;若仍打开VS Code,重复步骤2的命令。
额外注意事项
- 所有环境变量或文件关联修改后,必须重启终端才能生效,不要在原有终端窗口测试。
- 若PowerShell提示执行权限问题,以管理员身份打开PowerShell并执行:
允许执行本地脚本即可。Set-ExecutionPolicy RemoteSigned
内容的提问来源于stack exchange,提问作者Hadil Kraiem
相关产品推荐
相关产品推荐

