一、问题现象
Windows PowerShell 环境下,切换 Node.js 版本后,执行claude命令报错,提示无法识别该指令:
claude : 无法将"claude"项别为 cmdlet、函数、脚本文件或可运行程序的名称。 请检查名称的拼写,如果包括路径,请确认路径正确,然后再试一次。 CommandNotFoundException此前该命令可正常使用,仅在切换 Node 版本后出现异常。
二、根本原因
Node.js 不同版本拥有独立的全局包目录。通过npm install -g安装的全局工具(如 Claude Code),只会存放在当前使用的 Node 版本目录中。切换 Node 版本后,新版本的全局目录不存在对应执行文件,系统便无法找到claude命令。重装、升级 Node.js 也会触发同类问题。
三、分步排查流程
- 查看 npm 全局目录
确认当前 Node 版本对应的全局包路径:
npm config get prefix示例输出:D:\Program Files\nodejs
2. 校验目录内 Claude 相关文件
进入全局目录,检查是否存在claude执行文件(正常需包含claude、claude.cmd、claude.ps1):
ls$(npm config get prefix