Live Share 不同步扩展插件,协作者使用自身本地安装的扩展;需通过 extensions.json 推荐、命令行批量安装或 Settings Sync 统一列表,并确保 settings.json 配置、扩展启用状态及路径等一致。

Live Share 本身不同步扩展插件
这是最常被误解的一点:Live Share 启动后,协作者看到的是自己本地安装的扩展,不是主机的。即使主机装了 ESLint、Prettier、GitLens,访客若没装,就看不到语法检查、格式化按钮或 Git 状态提示——不是“没生效”,而是根本没加载。
原因很直接:VSCode 的扩展运行在各自本地进程里,Live Share 只转发编辑操作、调试状态和终端 I/O,不传输扩展二进制或激活逻辑。
所以,“环境一致性”不能靠共享会话自动达成,得提前对齐。
让协作者快速装上相同扩展的三种实操方式
别指望手动一个个复制粘贴扩展名。效率低、易漏、版本难控。
- 用
.vscode/extensions.json文件声明必需扩展(官方推荐):
在项目根目录建该文件,内容类似:{ "recommendations": ["esbenp.prettier-vscode", "ms-python.python", "redhat.vscode-yaml"] }VSCode 会在打开工作区时弹出“推荐扩展”提示,点击“Install All”即可批量安装 - 导出主机扩展列表,生成可执行命令:
code --list-extensions > extensions.txt→ 复制到协作者机器 →cat extensions.txt | xargs -L 1 code --install-extension - 配合 Settings Sync(GitHub Gist):如果团队已用
Settings Sync统一配置,且开启了Extensions同步项,那么新设备登录后会自动重装插件列表——但注意,这仅同步“列表”,不保证版本一致,也不解决 Live Share 会话中实时缺失的问题
扩展行为不一致?重点检查这三项
即使双方都装了同一个扩展,仍可能表现不同。常见断点在这里:
-
settings.json差异:比如"editor.formatOnSave"主机开了,协作者关了,保存时就不会触发 Prettier;务必把关键开关写进项目级.vscode/settings.json并提交到 Git - 扩展配置未继承:有些扩展(如
Python)依赖python.defaultInterpreterPath,这个路径是用户级设置,不会随工作区同步;建议改用.vscode/settings.json显式指定,或用pyproject.toml+python.defaultInterpreterPath指向 venv 内解释器 - 启用/禁用状态不同:
code --list-extensions --show-versions可查已启用列表;禁用的扩展不会响应任何事件,Live Share 里也看不到其 UI 元素(比如右下角的 ESLint 图标)
真正要同步的,其实是“扩展如何被使用”
比起插件本身,更关键的是它们的触发条件和作用范围是否一致。例如:
• Prettier 是否设为默认格式化程序("editor.defaultFormatter": "esbenp.prettier-vscode")
• ESLint 是否启用了 "eslint.enable": true 且配置文件(.eslintrc.js)在项目中存在
• GitLens 的提交信息解析是否依赖本地 Git 配置(user.name/user.email),而协作者没配
这些细节藏在设置和项目配置里,不显眼,但直接影响协作时的代码反馈是否一致。一次 git diff 看不到格式化差异,往往就卡在这类隐性偏差上。











