VSCode扩展需按项目语言、协作规范和真实工作流精准安装;装错可能泄露源码,漏配extensions.json会导致新人格式化失效。

VSCode 扩展不是装得越多越好,而是要按项目语言、协作规范和真实工作流精准安装——装错一个权限过大的插件,可能悄悄读取你的源码;漏配一个 extensions.json,新同事打开项目就卡在“为什么我的格式化不生效”。
怎么找对扩展,而不是被搜索结果带偏
在扩展面板(Ctrl+Shift+X)里搜“python”会出来 2000+ 结果,但真正该装的只有几个核心:官方 ms-python.python(含 Pylance)、ms-python.pylint 或 ms-python.flake8(选其一),再加一个 esbenp.prettier-vscode(Python 也支持)。别搜“formatter”,那会混入一堆低维护、不兼容 Python 3.12 的废弃插件。
- 认准
Verified Publisher标识,尤其是ms-开头(Microsoft 官方)、esbenp(Prettier 作者)、dbaeumer(ESLint 作者) - 点进详情页,看 GitHub 链接是否可访问、最近一次更新是否在 3 个月内
- 避免同时装
prettier-vscode和beautify—— 两者都监听editor.formatOnSave,会冲突导致保存时卡顿或格式错乱
团队项目里怎么让所有人用同一套扩展
靠口头说“记得装 ESLint”没用,必须把推荐固化到项目里。在项目根目录建 .vscode/extensions.json,内容如下:
{
"recommendations": [
"ms-python.python",
"esbenp.prettier-vscode",
"dbaeumer.vscode-eslint",
"bradlc.vscode-tailwindcss"
],
"unwantedRecommendations": ["ms-vscode.js-debug-nightly"]
}
这个文件不会强制安装,但新成员一打开项目,VSCode 就会在扩展面板顶部显示 “This workspace recommends the following extensions” 提示条。配合 .vscode/settings.json 锁定关键行为:
-
"editor.defaultFormatter": "esbenp.prettier-vscode"—— 确保谁保存都走同一套规则 -
"editor.formatOnSave": true—— 避免有人忘记手动格式化 -
"python.formatting.provider": "black"(如果项目用 Black)—— 不然 Prettier 会强行格式化 Python 文件,而它其实不擅长这个
哪些扩展该禁用而非卸载,以及为什么
比如你只在 Python 项目里用 ms-python.python,但在写 Markdown 笔记时它仍会加载语法检查逻辑,拖慢启动速度。这时不该直接卸载,而应右键插件 → Configure Extension Settings → 找到 When 字段,填入:resourceExtname == .py || resourceExtname == .ipynb。这样它只在 .py 或 .ipynb 文件中激活。
- 禁用(Disable)是软开关,重启后即恢复;卸载(Uninstall)会清空所有配置,重装后还得重新调参
- 像
GitLens这类功能强但内存占用高的插件,建议设为when: gitOpenRepository,避免在非 Git 项目里空跑 - 某些插件(如旧版
Live Server)请求terminal权限,但你只是预览 HTML —— 这种权限明显越界,直接跳过安装
同步与备份:换电脑后 5 分钟还原开发环境
开启 VSCode 设置同步(登录 Microsoft 账户 → 设置 → Sync → 开启)后,插件列表、快捷键、主题自动同步。但要注意:同步不包含插件的私有配置(比如你给 Prettier 单独写的 prettier.config.js),那些还得放进项目根目录。
- 导出当前插件清单:
code --list-extensions > extensions.txt - 批量重装(适合 CI 或 Docker 构建):
cat extensions.txt | xargs -I {} code --install-extension {} - 别依赖同步来备份
settings.json—— 它可能覆盖掉项目级配置,建议把个人偏好(如字体大小)和项目配置(如缩进为 2)分开管理
最常被忽略的一点:插件更新不是“装上就完事”。比如 Pylance 升级到 v2026.x 后,默认启用更激进的类型推断,可能突然报一堆 reportUndefinedVariable 错误——这时得去设置里关掉 python.analysis.typeCheckingMode,或者补上 pyrightconfig.json 显式声明规则。










