根本原因是VSCode未继承shell环境变量:macOS/Linux因GUI启动不加载~/.zshrc,Windows因安装未勾选“Add to PATH”;需分别通过终端启动code .或手动配置系统PATH,并彻底重启VSCode验证。

node -v 在终端能跑,VSCode 里却报 command not found
这不是插件问题,是 VSCode 没继承 shell 环境变量。macOS/Linux 下从 Dock 或 Spotlight 启动,~/.zshrc 根本没被 source;Windows 则常因安装时漏勾 “Add to PATH” 导致系统级 PATH 缺失。
验证方式只有一种:在 VSCode 内置终端(Ctrl + `)里执行 node -v 和 npm -v,有输出才算真正生效。
- macOS/Linux:先确认
which node输出路径(如/opt/homebrew/bin/node)已写入~/.zshrc,然后source ~/.zshrc,再彻底退出 VSCode,最后用终端执行code .启动 - Windows:进“系统属性 → 高级 → 环境变量”,把
C:\Program Files\nodejs\加进“系统变量”的PATH,重启 VSCode
launch.json 的 program 字段总指向错误路径
断点灰掉、提示 Cannot launch program,90% 是因为 program 没指向一个真实可执行的 .js 文件——不是源码、不是文件夹、也不是相对路径字面量。
- 正确写法:
"program": "${workspaceFolder}/src/index.js"(推荐,跨平台安全) - 错误写法:
"program": "src/index.js"(缺${workspaceFolder}/,VSCode 不会自动补前缀) - 错误写法:
"program": "./src/index.js"(.在这里不解析,等同字符串字面量) - TypeScript 项目:别指
src/index.ts;要么配preLaunchTask编译到dist/后指dist/index.js,要么改用runtimeExecutable: "npx"+runtimeArgs: ["ts-node", "src/index.ts"]
ESM 项目调试时报 Cannot use import statement outside a module
Node 默认按 CommonJS 解析,遇到 import 就崩。这不是语法错,是模块类型没对齐。
- 必须在项目根目录的
package.json中显式声明:"type": "module" - 如果用
code-runner插件,需手动改其executorMap:把javascript对应值设为"node --experimental-specifier-resolution=node $fileName" - VSCode 调试器(
pwa-node)也依赖这个"type"值;没声明就强行import,断点可能命中但require()会失败,process.cwd()行为也可能异常
低配虚拟机(2GB RAM / 单核 CPU)下 VSCode 卡顿的根源与裁剪策略
80% 卡顿来自插件后台常驻:Omnisharp、Pylance、ESLint 默认启用完整语言服务,一开项目就拉起独立进程,每个占 300–600MB;GitLens 和 Bracket Pair Colorizer 更隐蔽——不报错不崩溃,但持续监听文件变更和语法树,CPU 占用常年 20%+。
- 禁用语言服务但保留基础能力:Python 项目卸载 Pylance,只留 Python 官方扩展,再关掉
python.languageServer(设为"none") - Git 功能精简:卸载 GitLens,改用内置 Git 面板(
Ctrl+Shift+G),并关闭git.experimental.enabled - 终端替代方案:禁用 Terminal Tabs 类插件,用原生 Integrated Terminal +
shellLauncher(仅需配置 shell 启动命令,不额外开进程) - 必须保留的轻量替代插件:
Project Manager(JSON 管理多项目,不索引)、vscode-icons(开启vsicons.dontShowFiles跳过文件扫描)、prettier(务必关掉prettier.requireConfig并设prettier.enable为true) - 裁剪后仍卡?检查两个隐藏开关:
files.watcherExclude(加"**/node_modules/**"防 inotify 撑爆 WSL2)、"disable-hardware-acceleration": true(低配虚拟机显卡驱动通常不完整,强制 GPU 渲染反而拖慢)
裁剪不是越少越好,而是让每个插件「只做一件事、做完就停」。最易被忽略的是:插件禁用后必须重启 VSCode 才能真正释放内存——热重载只清 UI 层,后台进程还在跑。


















