Turborepo根目录ESLint配置未全局生效,求问题排查
Turborepo 中根目录 ESLint 规则未生效的修复方案
1. 修正自定义ESLint包的命名错误
你的共享ESLint包文件夹名为esling-config-custom,存在拼写错误(esling → eslint)。npm 要求ESLint共享配置包必须以eslint-config-前缀命名,拼写错误会导致配置无法被正确识别加载。将文件夹重命名为eslint-config-custom。
2. 修复子项目的ESLint配置继承关系
当前子项目的.eslintrc.js直接导入自定义配置,没有继承根目录的全局配置,导致根目录中next.rootDir等设置失效,同时破坏了Turborepo的配置链。修改/apps/testing-app/.eslintrc.js如下:
module.exports = { root: true, extends: ["../../.eslintrc.js"], parserOptions: { tsconfigRootDir: __dirname, project: "./tsconfig.json", }, };
3. 确保规则优先级与TypeScript适配
虽然你在自定义配置中设置了"no-console": 2,但需确认Next.js的ESLint扩展未覆盖该规则。如果仍不生效,可以在自定义配置中显式声明规则优先级(当前配置已经是错误级别,一般无需额外调整)。另外,由于使用TypeScript,确保parserOptions.project正确指向子项目的tsconfig.json,这点你当前配置已经做到。
4. 验证lint命令执行
运行子项目的lint命令:
npm run lint
或者在根目录通过Turborepo批量执行:
turbo run lint
确保ESLint扫描范围包含pages/index.tsx文件。
5. 重新安装依赖
在根目录执行以下命令,确保所有依赖(包括共享配置包)正确安装和链接:
npm install
完成以上步骤后,pages/index.tsx中的console.log应该会触发ESLint错误提示。如果问题依旧,可尝试删除node_modules、.next文件夹后重新安装依赖并重启开发环境。
内容的提问来源于stack exchange,提问作者Floky99
相关产品推荐
相关产品推荐

