vscode.dev无法读取本地settings.json或扩展,因其运行在浏览器沙盒中,完全隔离本地文件系统;所有配置仅存于浏览器indexeddb和localstorage,且仅限当前域名生效。

VSCode 网页端(vscode.dev)和本地桌面版之间不共享缓存,也无法直接同步本地 User 目录下的配置文件——这是设计使然,不是配置错误。
vscode.dev 为什么不能读取本地 settings.json 或扩展?
vscode.dev 运行在浏览器沙盒中,完全隔离于本地文件系统。它不会、也不能访问你硬盘上的 %APPDATA%\Code\User(Windows)、~/Library/Application Support/Code/User(macOS)或 ~/.config/Code/User(Linux)。所有设置都存储在浏览器的 IndexedDB 和 localStorage 中,仅限当前浏览器 + 当前域名(vscode.dev)生效。
- 你本地安装的扩展(如
ms-python.python)不会出现在 vscode.dev 的扩展列表里 -
keybindings.json、snippets/等文件不会自动加载 - 即使你用同一 GitHub 账户登录 vscode.dev 和桌面版,Settings Sync 也不会把桌面端的配置推送到网页端
哪些数据能跨桌面版和 vscode.dev 共享?
只有通过 Settings Sync 显式上传、且被 vscode.dev 支持的数据类型才可能互通。目前支持的仅有:
-
settings.json中的用户级配置(但部分设置会被忽略,例如涉及本地路径的files.exclude、python.defaultInterpreterPath) - 键盘快捷键(
keybindings.json) - 代码片段(
snippets/下的 JSON 文件) - UI 状态(如侧边栏是否展开、活动视图)——但仅限当前会话,刷新即丢失
注意:Extensions 不在 vscode.dev 的同步范围内。网页端只允许启用极少数 Web 兼容扩展(如 esbenp.prettier-vscode 的 Web 版),且必须手动安装,不会从你的 GitHub Gist 自动拉取。
如何让 vscode.dev 尽量接近本地环境?
关键不是“同步缓存”,而是主动复用 Settings Sync 的云端快照:
- 确保桌面版已开启 Settings Sync,并勾选
Settings、Keyboard Shortcuts、User Snippets - 在 vscode.dev 中,点击左下角账户图标 →
Turn on Settings Sync→ 用同一 GitHub 账户登录 - 首次登录时选择
Download(而非 Merge),避免浏览器本地空配置覆盖云端数据 - 手动安装 vscode.dev 兼容的扩展:打开 Extensions 视图,搜索并安装带
Web标签的扩展(如bradlc.vscode-tailwindcss) - 检查设置冲突:某些设置(如
terminal.integrated.defaultProfile)在网页端无意义,会被静默忽略
容易被忽略的限制点
vscode.dev 的 Settings Sync 实际是“单向适配”:它只从你的 GitHub Gist 拉取基础结构化配置,但不会写回、不参与三路合并、也不上报错误。如果你在网页端改了设置又没保存到 Gist(它其实不保存),关掉标签页就彻底丢失。真正稳定的跨端一致性,仍需以桌面版为唯一信源,网页端仅作轻量编辑备用。











