VSCode本身不管理Node.js环境缓存,所谓“Node环境缓存”实为系统级Node安装路径、全局npm目录及插件私有-cache目录三类残留;误删Cache目录无效且无影响,真正需清理的是C:\Program Files\nodejs、%APPDATA%\Roaming\npm等四类路径及~/.vscode/extensions下带-cache后缀的插件子目录。

VSCode 本身不管理 Node.js 环境缓存,所谓“Node环境缓存”实际是三类独立残留:系统级 Node.js 安装路径、全局 npm 目录、以及插件(如 ms-python.python 或 ms-vscode.vscode-typescript)为运行语言服务而缓存的 node_modules 和二进制文件。清理错位置不仅无效,还会导致调试断点失效、语言服务器启动失败。
删错地方:Cache 目录对 Node 运行没影响
%APPDATA%\Code\Cache(Windows)或 ~/.cache/Code(macOS/Linux)只存 Chromium 渲染层资源,比如 Marketplace 页面快照、Markdown 预览缓存。它不包含任何 Node.js 执行逻辑、ts-node 转译结果或 node_modules 内容。清了它,node -v 不变,npm install 也不受影响——但 UI 可能短暂卡顿,因为要重建渲染资源。
- 真正影响 Node 运行的是
node_modules/.cache(esbuild/vite/jest 用)、%APPDATA%\Roaming\npm(全局 CLI 工具)、以及~/.vscode/extensions/ms-python.python-2024.12.0-cache这类插件私有缓存 - 误删
Cache后发现“Python 语言服务器起不来”,其实是你漏掉了extensions下带-cache后缀的文件夹 - 如果终端里
node -v仍返回旧版本,问题一定出在系统PATH或where node指向的路径,和 VSCode 缓存无关
必须手动清理的四个 Node 相关路径(Windows)
控制面板卸载 Node.js 后,以下路径几乎必然残留,且直接决定你在 VSCode 终端里调用的是哪个 node:
-
C:\Program Files\nodejs:官方安装包默认路径,卸载程序常跳过此目录 -
C:\Users\{用户名}\AppData\Roaming\npm:全局npm install -g写入位置,含vue-cli-service.cmd等硬编码旧node路径的脚本 -
C:\Users\{用户名}\AppData\Roaming\npm-cache:缓存损坏时引发ERR_OSSL_PEM_ROUTINE类 SSL 错误 -
%LOCALAPPDATA%\Programs\Microsoft VS Code:旧版用户安装路径,与%APPDATA%\Code并存,容易被忽略
注意:AppData 是隐藏文件夹,直接在资源管理器地址栏粘贴完整路径回车即可进入,无需开启“显示隐藏项目”。
插件级 Node 缓存:重点清 -cache 后缀目录
VSCode 插件(尤其是 ms-python.python、ms-vscode.vscode-typescript)会在 ~/.vscode/extensions/ 下解压并缓存语言服务器运行时依赖。更新中断后,会残留 ms-python.python-2024.12.0-cache 这类损坏包——VSCode 启动时优先加载它,然后报 “Failed to fetch extension” 或 “Cannot find module”。
- 只删名称含
-cache的子目录,例如ms-python.python-2024.12.0-cache;别碰同名主目录ms-python.python-2024.12.0,否则插件彻底丢失 - PowerShell 一键清理命令:
Get-ChildItem "$env:USERPROFILE\.vscode\extensions" | Where-Object {$_.Name -match '-cache$'} | Remove-Item -Recurse -Force - 删完重启 VSCode,它会自动重下最新插件并解压,比“禁用再启用”更干净
ts-node 调试断点不命中?不是缓存问题
ts-node 不写磁盘缓存,每次运行都在内存中实时转译 .ts 文件,不生成 .js 或 .js.map。所谓“断点不命中”,90% 是因为 TypeScript 版本不一致或 launch.json 配置错误:
- 右下角点击 TypeScript 版本号 → 选
Use Workspace Version -
launch.json中runtimeArgs必须为["--nolazy", "-r", "ts-node/register"];漏掉-r或写成"ts-node"作为runtimeExecutable都会导致失败 - 若项目启用了 ESM(
"type": "module"),runtimeArgs必须换成["--loader=ts-node/esm"],-r在 ESM 下被 Node.js 忽略
验证是否生效:在 args 里加个非法路径,如 ["${workspaceFolder}/src/nonexistent.ts"],如果报 Cannot find module,说明解析链通了;如果静默失败或报语法错误,配置就没起作用。


















