断点灰掉主因是调试器找不到source map:检查.gitignore是否排除out目录、launch.json的outfiles路径是否正确、确保已编译出.js和.map文件;插件卸载不彻底需手动删extensions文件夹、配置项及globalstorage数据。

VSCode插件调试时断点不生效,怎么查
断点灰掉(unbound)不是代码写错了,而是调试器找不到源映射文件。常见原因是out目录被.gitignore排除,导致 VS Code 启动调试时无法加载extension.js对应的.map文件;或者launch.json里outFiles路径没配对。
- 确认
out目录没在.gitignore里——如果被忽略,调试器压根读不到编译产物 - 检查
launch.json中outFiles是否包含"${workspaceFolder}/out/**/*.js",缺了这句就找不到入口文件 - 运行
npm run compile或npm run watch确保out/下有最新.js和.map文件 - 别在
deactivate里设断点指望它自动触发——它只在插件卸载时调用,而调试中 VS Code 不会主动卸载你正在跑的插件
插件卸载后还报 command 'xxx' not found,说明没清干净
点击「Uninstall」按钮只是删注册表条目和扩展清单,~/.vscode/extensions/下的文件夹、settings.json里的配置、globalStorage里的私有数据全留着。下次启动 Extension Host 扫描到残留文件,就会尝试加载,但找不到导出的命令,于是报错。
- 先关掉所有 VS Code 进程(包括后台的
Code Helper.exe或Code Helper (Renderer)) - 进对应系统路径删插件文件夹:
%USERPROFILE%\.vscode\extensions\(Windows)、~/Library/Application Support/Code/Extensions/(macOS)、~/.vscode/extensions/(Linux) - 右键插件 →
Copy Extension ID(如esbenp.prettier-vscode),再在文件管理器里按此 ID 全局搜索,精准匹配后删整个文件夹(注意可能带版本号,如esbenp.prettier-vscode-12.5.0) - 打开命令面板,运行
Preferences: Open Settings (JSON),全局搜索插件 ID 或关键词(如prettier、copilot),删掉整行配置;同样处理keybindings.json
测试插件逻辑要不要写单元测试?怎么写才不报 vscode.xxx is undefined
要写,但不能直接用 Jest import extension.ts——因为 VS Code API(如vscode.window、vscode.workspace)在 Node 环境下是undefined,一跑就崩。
- 纯工具函数(不依赖 VS Code API)可抽离到独立模块,用 Jest/Vitest 直接测,不用 mock
- 涉及命令注册、配置读取、状态管理等集成行为,必须用
@vscode/test-electron:它会拉起一个最小 Electron 实例,并注入 mock 的 API,模拟真实 host 环境 - 集成测试入口在
test/runTest.ts,必须调用runTests并传入extensionDevelopmentPath和extensionTestsPath - 别漏掉
outFiles配置——测试运行器需要知道编译后的 JS 文件在哪,否则找不到测试入口
globalStorage 和 workspaceStorage 是“幽灵残留”的重灾区
插件卸载后,API 密钥、对话历史、上次打开的图表状态这些私有数据不会随文件夹一起消失,全堆在globalStorage里。重装同名插件时,它会直接读取旧数据,“复活”出一堆奇怪行为,比如卡在「正在激活」、反复弹登录框、或格式化规则错乱。
-
globalStorage路径:%APPDATA%\Code\User\globalStorage(Windows)、~/Library/Application Support/Code/User/globalStorage(macOS)、~/.config/Code/User/globalStorage(Linux) - 进该目录后,按插件 ID 搜索子文件夹(如
saoudrizwan.claude-dev),整文件夹删掉 -
workspaceStorage也得看一眼——尤其旧项目里有.vscode/extensions.json,可能导致打开时仍提示「推荐安装」 - 删完重启 VS Code,打开开发者工具(
Help → Toggle Developer Tools),在 Console 里搜插件 ID,确认没有 require 或 activation 报错











