最可靠方式是直接共享.vscode/settings.json并确保用“Open Folder”打开项目;该文件启用ESLint、TypeScript检查等纠错功能,但Settings Sync不同步它,需配合extensions.json推荐插件且手动安装。

直接共享 .vscode/settings.json 是最可靠的方式
VSCode 的代码纠错行为(比如 ESLint 报错、TypeScript 类型检查、拼写提示)主要由工作区设置驱动,而这些设置集中在项目根目录下的 .vscode/settings.json。只要把这个文件提交进 Git,同事克隆后用「File → Open Folder」打开整个项目,规则就自动生效。
常见错误现象:同事拉完代码没看到任何报错提示;或者 ESLint 明明配置了却没标红。大概率是因为他双击打开了某个 .ts 文件——VSCode 此时处于“文件模式”,完全忽略 .vscode/ 下所有配置。
必须确保团队统一用「Open Folder」打开项目根目录,否则所有共享设置形同虚设。
关键配置项示例(用于触发纠错):
-
"eslint.enable": true—— 启用 ESLint -
"typescript.preferences.includePackageJsonAutoImports": "auto"—— 影响类型导入提示 -
"cSpell.enabled": true—— 开启拼写检查 -
"editor.codeActionsOnSave": { "source.fixAll.eslint": true }—— 保存时自动修复
别指望 Settings Sync 同步这些规则
VSCode 官方的 Settings Sync 功能明确不上传任何工作区级配置,包括 .vscode/settings.json、.vscode/extensions.json,甚至 .vscode/tasks.json。它只同步你个人用户目录下的 settings.json(即通过 Ctrl+, → Open Settings (JSON) 编辑的那个)。
这意味着:你登录账号开启同步后,在另一台设备上看到的仍是自己原来的用户设置,不会拉取项目里定义的那些纠错规则。
所以,不要在团队文档里写“请开启 Settings Sync”,这根本解决不了工作区规则共享问题。
配合 .vscode/extensions.json 确保插件一致
光有设置还不够——如果同事没装 esbenp.prettier-vscode 或 ms-python.python,settings.json 里写的 "python.formatting.provider" 就是空转。
把推荐插件列表写进 .vscode/extensions.json,格式必须是标准 JSON 数组:
[ "esbenp.prettier-vscode", "ms-python.python", "streetsidesoftware.code-spell-checker" ]
注意:
- 插件 ID 必须和 Marketplace URL 最后一段完全一致(例如
https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode→ ID 是esbenp.prettier-vscode) - VSCode 不会自动安装,但首次打开工作区时会弹出横幅提示「Install recommended extensions」,需手动点击
- 如果插件有平台限制(如仅 Windows),其他平台用户会静默跳过,不报错也不提示
复杂点在于语言专属规则和路径敏感项
有些纠错逻辑依赖具体路径或语言上下文,比如:
-
"[javascript]": { "editor.defaultFormatter": "esbenp.prettier-vscode" }—— 这种语法只对 JS 文件生效,不能写成全局"editor.defaultFormatter",否则可能覆盖 TS 的格式化行为 -
"eslint.workingDirectories"如果用了相对路径(如["./packages/core"]),必须确保所有成员的项目结构一致;若含绝对路径(如/Users/xxx/project),VSCode 会直接忽略该字段且不提示 - 像
python.defaultInterpreterPath这类字段,不同机器 Python 解释器位置必然不同,绝不能写进共享的settings.json,应改用.python-version或 pyenv 管理
真正容易被忽略的是:规则生效 ≠ 规则被正确加载。VSCode 不报错、不警告,只是默默跳过非法或不匹配的配置项。建议新成员第一次打开项目后,手动运行 Developer: Toggle Developer Tools,在 Console 里扫一眼有没有 Ignoring invalid configuration 类提示。


















