extensions.json是唯一可靠方式,因vscode官方仅支持该文件在首次打开工作区时稳定触发「recommended extensions」横幅;它须置于.vscode/extensions.json,含"recommendations"字段及正确格式插件id。

直接放 .vscode/extensions.json 到项目根目录,填对 recommendations 字段,VSCode 才会在首次打开时稳定弹出「Recommended Extensions」横幅;其他方式(比如改 settings.json 或写脚本)要么无效,要么不可靠。
为什么只有 extensions.json 是唯一可靠路径
VSCode 官方只在项目根目录的 .vscode/extensions.json 文件被检测到时,才触发工作区推荐逻辑。它不读取子目录下的同名文件,也不认 extensions.json.txt 或 recommendations.json 这类变体。
-
settings.json里加"extensions.recommendations"是无效配置——VSCode 忽略该字段,连警告都不报 - 用 CLI 脚本自动安装插件,依赖本地
code --install-extension,但 macOS/Linux/Windows 路径、权限、Shell 环境不一致,CI 或新成员机器上大概率失败 -
devcontainer.json的recommendations只在容器启动时生效,纯本地开发场景下完全不触发 - 用户级设置(如
extensions.ignoreRecommendations: true)会全局压制横幅,但这是用户自己的选择,你无法绕过——extensions.json的作用只是“正确提示”,不是“强制安装”
怎么写对 extensions.json 内容
内容必须是合法 JSON,顶层对象含 recommendations 字段,值为字符串数组,每个字符串是完整插件 ID(publisher.name 格式),不能带版本号、空格或注释。
- 路径必须是
.vscode/extensions.json,不能是./vscode/extensions.json(少个点)或.vscode/extension.json(拼错) - ID 必须精确:比如 Prettier 是
esbenp.prettier-vscode,不是prettier-vscode或esbenp.prettier - 区分同功能不同维护者:ESLint 推
dbaeumer.vscode-eslint,别用roadhump.vscode-eslint;Python 语言服务推ms-python.vscode-pylance,不是过时的ms-python.python(除非你真用旧版解释器) - 别塞进个人偏好类插件:主题、图标包、终端美化工具——它们不该出现在
recommendations里,否则新人一眼看到 15 个插件,关键项直接被淹没
新人打开项目后没看到推荐横幅?先查这四点
常见失效不是 VSCode 有问题,而是文件本身没过关。验证顺序建议从最基础开始:
- 执行命令面板(
Ctrl+Shift+P/Cmd+Shift+P)→ 输入并运行Extensions: Show Workspace Recommendations,如果提示 “No recommendations”,说明文件路径或内容有硬伤 - 检查
.vscode文件夹是否在 Git 克隆后的**项目根目录**下,不是嵌套在src/或frontend/子目录里 - 用 VSCode 自带的 JSON 验证:打开
extensions.json,看右下角状态栏是否显示 “JSON”;如果显示 “Plain Text”,说明文件编码或 BOM 头异常,重存为 UTF-8 无 BOM - 确认插件 ID 是否真存在:把某个 ID 粘贴到浏览器访问
https://marketplace.visualstudio.com/items?itemName=xxx.xxx,404 就说明 ID 已下架或拼错
真正容易被忽略的是「首次打开」这个前提——已打开过的项目不会重复提示,哪怕你删了插件、改了 extensions.json。这时候得手动唤出推荐列表,或者让成员清空 VSCode 缓存里的工作区状态(不推荐),更实际的做法是在 README 里写一句:“首次打开项目后,请点击 Extensions 视图右上角 ‘⋯’ → ‘Show Recommended Extensions’”。











