直接修改VSCode扩展文件夹内的代码后不生效如何解决
已安装VSCode扩展源码修改后不加载的解决步骤
直接修改扩展目录文件不生效是因为VSCode默认会缓存扩展的编译产物和加载记录,不会实时监听文件变更,按以下步骤操作即可让修改生效:
- 完全终止所有VSCode进程:不要只关闭窗口,Windows打开任务管理器结束所有名为
Microsoft Visual Studio Code的进程;Mac右键程序坞VSCode图标选择「退出」;Linux执行killall code确保无残留进程,进程不杀干净缓存不会失效。 - 确认修改的文件路径正确:
第三方扩展默认安装路径:- Windows:
%USERPROFILE%\.vscode\extensions\<发布者ID>.<扩展ID>-<版本号>\ - Mac/Linux:
~/.vscode/extensions/<发布者ID>.<扩展ID>-<版本号>\
绝大多数TS开发的扩展编译产物存放在out/或dist/目录下,注意不要误改node_modules内的同名依赖文件,修改完确认文件已保存,你添加的console.debug语句确实写入了目标JS文件。
- Windows:
- 清理扩展缓存:
找到VSCode用户数据目录下的两个缓存文件夹删除即可:- 扩展安装包缓存
CachedExtensionVSIXs - 扩展编译产物缓存
CachedData
不同系统的用户数据目录默认路径:
- Windows:
%APPDATA%\Code\ - Mac:
~/Library/Application Support/Code/ - Linux:
~/.config/Code/
直接删除上述两个文件夹不会丢失你的用户配置、快捷键和插件列表,下次启动VSCode会自动重建缓存。
- 扩展安装包缓存
- 重启VSCode后,按
Ctrl+Shift+I(Mac快捷键为Cmd+Option+I)打开开发者工具,切换到Console面板即可看到你添加的调试日志输出。
补充提示:如果目标扩展是用webpack、esbuild等工具打包成单文件的,你需要找到打包后的入口文件(通常是
out/extension.js或dist/extension.js)添加调试语句,修改零散的拆分JS文件不会生效。另外扩展自动更新会覆盖你做的所有修改,调试期间可以暂时关闭该扩展的自动更新,避免反复修改。
如果需要频繁调整调试代码,可以在扩展源码目录下执行npm install后按F5启动扩展开发宿主,修改代码后只需要按Ctrl+R重载开发窗口就能生效,不需要反复清缓存重启。
内容的提问来源于stack exchange,提问作者Marcus
相关产品推荐
相关产品推荐

