快速修复
# 一键:WSL 内装原生 Node(nvm)并重装全局包
nvm install 22 && nvm use 22 && npm install -g @musistudio/claude-code-router
你会遇到什么
WSL 里执行 ccr 或其它 npm 全局命令报 node: not found,但同一命令在 Windows 侧正常。原因是包是 Windows 版安装的(脚本 shebang 指向 Windows node),或 PATH 里 Windows 路径优先于 WSL 原生路径——两侧的 Node 是两套东西,别混用。
本文路径:快速修复(30 秒一段命令)→ 一步步排查(可跳读)→ 原理与变体(症状/原因/证据)。赶时间直接跳到「快速修复」。
为什么会这样
WSL 和 Windows 各有自己的 node/npm 全局目录。如果在 Windows 侧 npm install -g,生成的命令脚本 shebang 指向 Windows 的 node.exe;在 WSL 里执行时找不到对应解释器就报 node: not found。反过来,PATH 里 Windows 路径在前时,WSL 里的 node 会调到 Windows 版,行为怪异。
npm 全局命令的真实形态是一个 shell 脚本(不是二进制):npm install -g 时,npm 在全局 bin 目录生成一个可执行脚本,脚本第一行 shebang 写死了解释器路径(如 #!/usr/bin/env node 或直接指向 node.exe 的绝对路径)。
安装时写的是当时那台机器的解释器:在 Windows 侧安装,shebang 指向 Windows 的 node.exe——WSL 里执行这个脚本时,WSL 环境里没有 node.exe(那是 Windows 的 PE 可执行文件),于是 node: not found。
反过来,WSL 的 PATH 里如果 Windows 路径(/mnt/c/...)排在前面,node 会解析到 Windows 版 node.exe——WSL 能执行它(通过 interop),但行为、路径、性能都跟原生版不一样。这就是“两侧是两套东西,别混用”的机制含义。
修复也因此固定:在 WSL 侧装原生 Node(nvm/apt),把全局包重装到 WSL 侧 npm 的 bin 目录,让 shebang 指向 WSL 的解释器;验证用 which node 看解析路径。
实测环境:WSL 原生 Node v22.22.1 + npm 全局安装链路可用(,2026-08-28)。
一步步来
1. WSL 内装原生 Node — 必做
nvm install 22 && nvm use 22
(或 apt 装 nodejs/npm。)确保 /usr/bin 或 nvm 路径在 PATH 中优先于 Windows 路径。
2. 验证生效版本 — 必做
which node && node --version
which node 指向 WSL 内路径(/usr/bin 或 ~/.nvm)才是对的。
3. 重装到 WSL 侧全局 — 必做
npm install -g @musistudio/claude-code-router
不要混用两侧 npm 全局目录;旧命令脚本残留的话 rm $(which ccr) 清掉 Windows 侧副本。
怎么确认修好了
which ccr && ccr --version
WSL 内命令可执行即成功(实测:WSL 原生 Node + npm 全局链路可用)。
其它环境的表现
| 环境 | 说明 |
|---|---|
| WSL 执行 Windows 装的包 | node: not found,重装到 WSL 侧 |
| PATH 混用 | 确保 WSL 路径优先 |
| 两侧全局目录 | 各装各的,不共享 |
| CI/容器 | 单侧环境,无此问题 |
症状
WSL 里执行 ccr 或 npm 全局命令报 node: not found;同一命令在 Windows 侧正常。
原因
npm 包是 Windows 版安装的(脚本 shebang 指向 Windows node),或 PATH 中 Windows 路径优先于 WSL 原生路径。
解法
- WSL 内装原生 Node(nvm 或 apt),确保
/usr/bin在 PATH 中优先。 - 重开 shell 验证:
which node、node --version。 - 不要混用两侧 npm 全局目录(重装到 WSL 侧全局即可)。
验证证据
- 网页案例:CSDN(2026-03,WSL node: not found 场景)。
- 本市场实测:WSL 原生 Node v22.22.1 + npm 全局安装链路可用。
适用工具 (1)
本问题方案已挂到下列工具的方案页——从工具页也能回到这里,双向可达。
claude-code-router来源与证据
← 网关与路由 问题域 | 问题货架 | 遇到其它问题?去 问题空间 提交求助卡