在 Monorepo 架构中,为子项目配置独立 ESLint 规则(配置文件不放在根目录)时,VS Code 只需开启自动工作区识别,即可精准匹配各子项目的配置,无需复杂操作。
核心解决方案仅需一步:在 Monorepo 根目录的 .vscode/settings.json 中,为 ESLint 插件配置 mode: "auto"。
核心配置代码
// .vscode/settings.json(Monorepo 根目录)
{
"eslint.workingDirectories": [{ "mode": "auto" }],
// 可选:禁用内置 JS 验证,避免与 ESLint 冲突
"javascript.validate.enable": false
}
配置说明
"mode": "auto" 会让 VS Code 的 ESLint 插件自动检测当前文件所在目录的项目边界(以 package.json 或 .eslintrc.* 配置文件为标识),自动切换到对应子项目的工作区,从而读取该子项目下的独立 ESLint 配置,完美解决 Monorepo 中子项目配置识别失效的问题。
生效验证
在子项目中编写测试代码(如 console.log('test')),若该子项目的 ESLint 配置中开启了 no-console: "warn" 规则,VS Code 会立即在代码处显示黄色警告,说明配置已成功识别。