vscode启动卡在“loading extensions”界面本质是某扩展在激活阶段阻塞主进程;应先用code --disable-extensions验证,再通过developer: toggle developer tools查看activate()超时日志,重点排查gitlens、eslint、prettier及中文语言包等高频问题扩展。

启动卡在“Loading Extensions”界面
这是最常见的 VSCode 启动异常,本质是某个扩展在激活阶段阻塞了主进程。不是所有扩展都会触发,但 GitLens、ESLint、Prettier 或某些本地化插件(如中文语言包)在配置错误或缓存损坏时高频出现。
实操建议:
- 启动时按住
Ctrl+Shift+P(Windows/Linux)或Cmd+Shift+P(macOS),快速打开命令面板——如果能进,说明主线程未死锁,只是扩展加载慢;此时立即执行Developer: Toggle Developer Tools,切换到 Console 标签页,看是否有Extension host terminated unexpectedly或大量activate() took longer than 1000ms日志 - 用命令行带参数启动:终端执行
code --disable-extensions,若能正常打开,就确认是扩展问题;再逐个启用(推荐先禁用非核心扩展,如主题、图标包、翻译类) - 不要依赖 GUI 卸载——有些扩展卸载不干净,残留
~/.vscode/extensions/xxx目录或package.json缓存,手动删掉对应文件夹更可靠
报错 “Error: EACCES: permission denied, mkdir ‘/usr/share/code/resources/app/out/vs’”
典型于 Linux/macOS 上用 root 权限安装过 VSCode,或通过 Snap/Flatpak 安装后又手动解压覆盖了官方二进制。VSCode 尝试写入只读资源目录,直接失败退出。
实操建议:
- 检查启动方式:是否用了
sudo code?绝对禁止。VSCode 设计为用户态运行,sudo会污染~/.vscode权限并导致后续无法读写扩展目录 - 验证安装来源:执行
which code和ls -l $(which code),若指向/snap/bin/code或/usr/bin/code且属 root:root,建议卸载 snap 版,改用官网 .tar.gz 包解压到~/apps/code并添加软链 - 修复已有权限:运行
chown -R $USER:$USER ~/.vscode,但注意别递归修改/usr/share/code——那是系统路径,应保持只读
Windows 下双击图标无反应,任务管理器里看不到进程
不是崩溃,而是根本没拉起主进程。常见于杀毒软件拦截、注册表关联损坏,或 code.exe 被误标为威胁隔离。
实操建议:
- 先绕过快捷方式:进安装目录(默认
C:\Users\<username>\AppData\Local\Programs\Microsoft VS Code\Code.exe</username>),双击它。如果成功,说明是快捷方式目标被篡改或图标缓存失效,右键 → 属性 → 检查“目标”字段是否含多余参数(如旧版--no-sandbox) - 检查 Windows Defender 历史记录:搜索“病毒和威胁防护”→“保护历史记录”,筛选“阻止的应用”,找
Code.exe是否在其中;若存在,还原并添加排除项(路径需精确到Code.exe文件本身) - 重置文件关联:管理员身份运行 PowerShell,执行
cmd /c "assoc .vscode=VisualStudioCode.File" && ftype VisualStudioCode.File="C:\Users\<username>\AppData\Local\Programs\Microsoft VS Code\Code.exe" "%1"</username>(路径按实际调整)
启动后窗口空白,DevTools 显示 “Failed to load resource: net::ERR_CONNECTION_REFUSED”
这通常意味着 VSCode 内置的 Electron 渲染进程试图加载本地 webview 或扩展 UI 时,后端服务(如 vscode-webview 代理)未响应。多见于企业网络策略、本地 hosts 劫持或 DNS 污染。
实操建议:
- 检查
hosts文件:Windows 在C:\Windows\System32\drivers\etc\hosts,macOS/Linux 在/etc/hosts,确认没有把localhost、127.0.0.1或vscode-webview相关域名映射到异常 IP - 临时关闭代理:VSCode 默认继承系统代理,但某些 PAC 脚本会错误地将
localhost走代理。在设置中搜http.proxy,设为空值;或启动时加code --proxy-server="" - 禁用硬件加速:极少情况下 GPU 进程崩溃会导致白屏,启动时加
code --disable-gpu测试;若有效,可在settings.json中加"disable-hardware-acceleration": true
真正难排查的往往不是错误信息本身,而是多个条件叠加:比如某次更新后,GitLens 扩展在特定 workspace 下触发权限检查,而该 workspace 恰好挂载在 NFS 卷上,再加上 Windows 的防病毒实时扫描开启——三者一碰,就卡在“Loading Extensions”不动,但日志里只显示一句模糊的 ENOTCONN。这时候得一层层剥开,而不是盯着一个报错反复重装。











