工作区推荐插件仅提示安装,不自动安装或强制启用;需将合法的.vscode/extensions.json置于项目根目录,VSCode即在Extensions视图顶部或右下角显示提示,支持一键安装或命令面板查看。

工作区推荐插件不会自动安装,也不强制启用——它只是在正确位置放对文件后,给打开项目的人一个清晰、可操作的提示。只要 .vscode/extensions.json 存在且格式合法,VSCode 就会在 Extensions 视图顶部或右下角弹出提示,新人克隆即见,老手也无需额外记忆。
如何确认 extensions.json 已生效
VSCode 不会校验插件是否真被安装,只检查文件是否存在、JSON 是否合法、recommendations 字段是否为字符串数组。常见失效原因:
-
.vscode文件夹不在项目**根目录**(比如放在子目录或误建为vscode) - 文件名写成
extensions.json.txt或recommendations.json(必须是extensions.json) - JSON 中用了中文引号、尾逗号缺失、ID 拼错(如把
ms-python.python写成ms-python.Python) - 用户手动设置了
extensions.ignoreRecommendations: true(全局禁用)
验证方式:打开命令面板(Ctrl+Shift+P),输入并执行 Extensions: Show Workspace Recommendations,若列表为空或报错“no recommendations”,就该回头检查文件路径和内容。
推荐插件 ID 怎么找才不翻车
插件 ID 是唯一标识,错一个字符就找不到。别靠记忆或搜索结果猜,直接从市场页或已安装插件里复制:
- 打开 VSCode 扩展市场页面,看 URL 最后一段:例如
https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode→ ID 是esbenp.prettier-vscode - 在 Extensions 视图中找到已安装插件,右键 →
Copy Extension ID(VSCode 1.86+ 支持) - 注意区分同名插件:比如 ESLint,
dbaeumer.vscode-eslint是官方维护版,roadhump.vscode-eslint是旧分支,混用会导致规则不一致
Python 项目常配 ms-python.python,但如果你用的是 Pylance 做语言服务,实际该推 ms-python.vscode-pylance —— ID 和功能要严格对应。
为什么点了 “Install All” 却没装全
“Install All” 只安装当前用户未启用的推荐插件,已禁用、已全局禁用、或已在其他工作区启用但当前禁用的插件,都不会被覆盖。常见表现:
- 插件已安装但被手动禁用(状态显示为 “Disabled”)→ 它不会被重启用,需手动点启用
- 插件在用户级已启用,但当前工作区明确禁用(通过
extensions.enabledPlugins配置)→ “Install All” 不干预 - 网络问题导致某个插件下载失败,VSCode 默认静默跳过,不会报错提醒
建议新成员首次打开时,先看右下角气泡提示,再手动点开 Extensions: Show Workspace Recommendations,逐个确认状态。批量安装后,最好重启 VSCode 窗口,确保语言服务类插件(如 ms-python.python)完成初始化。
和 devcontainer.json、settings.json 的关系别搞混
这三个文件分工明确,混用会导致预期外行为:
-
.vscode/extensions.json只管“该装哪些插件”,ID 列表写进去,VSCode 就提示;它不控制启用状态,也不改配置 -
.vscode/settings.json管“怎么用这些插件”,比如指定"editor.defaultFormatter": "esbenp.prettier-vscode",或关掉某语言的默认校验 -
.devcontainer/devcontainer.json管“在哪跑”,其中extensions字段声明的插件,会在容器启动时**自动安装并启用**,和extensions.json的提示逻辑不同
如果项目用了 Dev Container,建议两个地方都写一遍 ID:容器内靠 devcontainer.json 自动装,本地开发靠 extensions.json 提示装——否则本地开发者可能漏掉关键插件,而容器用户又看不到推荐横幅。


















