code --disable-extensions是唯一可信的排查起点:它强制跳过全部插件加载逻辑,不读settings.json、不触发任何activate(),若执行后运行正常,则100%为插件导致静默崩溃。

code --disable-extensions 是唯一可信的起点
VSCode 运行代码没反应、终端一闪而过、或报 spawn python ENOENT 这类错误,90% 不是 Python 路径配错了,而是某个插件在启动早期就让 Extension Host 崩溃了——此时 UI 上点“禁用全部扩展”根本没机会执行。只有 code --disable-extensions 能 100% 跳过所有插件加载:不读 settings.json、不触发任何 activate()、不扫描 .vscode/extensions.json。直接在终端运行它,再打开项目试运行。如果这时能正常弹终端并输出,问题就锁死在插件层。
哪些插件最容易干扰外部工具调用
不是所有插件都安静;有些会在保存、切换文件、甚至窗口聚焦时偷偷 spawn 外部进程,一旦路径含空格、中文或权限不足,就会静默失败——错误不报在 UI,只藏在 exthost 日志末尾。高频肇事者包括:
-
ms-python.python(旧版常因找不到pylance或debugpy启动失败) -
formulahendry.code-runner(executorMap 配错、斜杠方向错误、漏-u参数都会导致输出卡住) -
bradlc.vscode-tailwindcss(启动时尝试 spawntailwindcssCLI,PATH 不对就静默退出) - AI 补全类插件(
GitHub.copilot、Amazon.aws-toolkit-vscode等,可能劫持onDidSaveTextDocument并阻塞后续执行链)
OUTPUT 面板和 Developer Tools 才是真实信源
右上角 ▶️ 按钮消失、F5 没反应、终端空白——这些都不是“没配置”,而是命令被劫持或进程被提前终止。关键线索不在弹窗里:
- 按
Ctrl+Shift+U打开 OUTPUT 面板,下拉选择Python、Code Runner或Debug,真实错误全在这里(比如Debug adapter process has terminated unexpectedly) - 按
Ctrl+Shift+I打开 Developer Tools,切到Console标签页,搜Extension host terminated unexpectedly或Cannot read property 'spawn' - 运行
Developer: Show Running Extensions,重点关注Status为Activation failed或Activation Time > 1000ms的插件
手动测试比 UI 禁用更可靠
连插件面板都打不开时,别指望鼠标点点就能定位。用命令行逐个排除才是硬办法:
- 先列出所有已装插件:
code --list-extensions - 禁用单个可疑插件启动:
code --disable-extension ms-python.python - 一次禁用多个:
code --disable-extension esbenp.prettier-vscode --disable-extension dbaeumer.vscode-eslint - 注意:
--disable-extension只对本次启动生效,不影响插件文件本身;每次改完都要完全退出 VSCode 进程(Windows 右键任务栏 → “退出”,macOS 用 Activity Monitor 杀光所有Code和Code Helper)
spawn 外部进程,而路径含空格、中文或权限不足会导致静默失败——这种错误不会出现在 UI 提示里,只藏在 exthost 日志末尾。











