npm config set prefix和cache命令必须用不含空格、中文的绝对路径,如"D:/nodejs/node_global";改完环境变量后需彻底重启VSCode才能生效;launch.json中runtimeExecutable必须显式指定node绝对路径,调试器不读PATH。

npm config set prefix 和 cache 命令必须用绝对路径
Windows 路径里带空格或中文(比如 C:Users张三AppData)会导致 npm 拒绝写入,报错 EPERM: operation not permitted 或静默失败。Mac/Linux 虽然宽松些,但 tilde(~)在 npm config 里不会自动展开,npm config set prefix "~/node_global" 实际存的是字面量 ~/node_global,后续所有全局安装都会失败。
正确做法是:
- 新建目录时选不含空格、中文、特殊符号的路径,例如
D: odejs ode_global(Windows)或/opt/node-global(macOS/Linux) - 执行命令时粘贴完整绝对路径,Windows 注意反斜杠要双写或改用正斜杠:
npm config set prefix "D:/nodejs/node_global" - 执行后立刻验证:
npm get prefix和npm get cache必须输出你刚设的路径,且不带引号、不带~
VSCode 终端不识别新 PATH,不是配置错了而是没重启
改完系统环境变量(比如用户变量 Path 里替换了旧的 %APPDATA%
pm),VSCode 内置终端仍沿用启动时读取的老 PATH。哪怕你关掉所有终端标签页,只要 VSCode 窗口没彻底关闭,PATH 就不会刷新。
常见误操作:
- 只在 Windows 设置里改了 Path,但 VSCode 用的是 PowerShell,而 PowerShell 默认不加载用户环境变量(尤其在非登录 shell 下)
- 改了
NODE_PATH却忘了它只影响require()模块解析,跟npm命令本身无关 - 以为
npm install -g成功就万事大吉,结果vscode里运行脚本时提示command not found: xxx
解决方法只有两个:
- 彻底关闭 VSCode 所有窗口(包括托盘进程),再重新打开
- 或者,在
settings.json中强制注入 PATH:"terminal.integrated.env.windows": { "PATH": "${env:PATH};D:\nodejs\node_global" }
launch.json 里 runtimeExecutable 不填,调试器根本不会查 PATH
VSCode 调试 Node.js 时,launch.json 中的 runtimeExecutable 字段是硬编码路径。它**完全不读系统 PATH**,也不看 NODE_HOME 或 which node 的结果。留空或写错,就会卡在 Can’t find Node.js binary ‘node’,哪怕你在终端里 node -v 正常返回。
安全写法:
- Windows 用户直接填:
"runtimeExecutable": "D:\nodejs\node.exe" - macOS/Linux 用户填绝对路径:
"runtimeExecutable": "/usr/local/bin/node"(用which node确认) - 别用
${env:PATH}或变量插值——VSCode 调试器不支持
顺带一提:runtimeExecutable 和 npm 全局路径无关,它只管启动调试进程用哪个 node 可执行文件。
node_modules 缓存 ≠ npm cache,VSCode 里真正该清的是 extensions 目录
很多人搜“VSCode Node 缓存”想清理磁盘空间,结果去删 %APPDATA%CodeUser 或 ~/.vscode,反而丢了全部设置和插件信任状态。实际上 VSCode 自身不存 Node 缓存;所谓“Node 相关缓存”主要来自两处:
-
~/.vscode/extensions/下插件解压出的node_modules(比如ms-vscode.vscode-typescript-next-5.8.0单个超 400MB) -
~/.vscode/CachedData/里 TypeScript 语言服务生成的语法快照(换 Node 版本后旧快照会失效,但不会自动删)
精准清理建议:
- 进
extensions目录,按修改时间排序,删掉所有含-cache后缀的文件夹(更新中断残留) - 保留每个插件最新版,删掉旧版本(如
ms-python.python-2025.1.0留着,ms-python.python-2024.3.0删掉) -
CachedData目录可整个删,重启 VSCode 后自动重建,不影响配置
真正的 npm 全局缓存(npm cache clean --force 清的)和 VSCode 无关,别混在一起操作。


















