ESLint extends继承多个配置时顺序有影响吗? 诸葛慧青 提问于 2026-01-27 09:43:12 阅读 52 工具 在项目里同时继承airbnb和自定义配置,但no-unused-vars规则冲突。比如这段HTML代码: <div>{{ unusedVar }}</div> 配置文件写成这样: { "extends": ["airbnb", "./custom-rules.js"] } 调换顺序把自定义配置放前面后,报错提示还是存在,这是为什么?是不是继承顺序不影响规则覆盖? ESLint 我来解答 赞 8 收藏 分享 生成中... 手机扫码查看 复制链接 生成海报 反馈 发表解答 您需要先 登录/注册 才能发表解答 2 条解答 UP主~依诺 Lv1 ESLint 的规则继承顺序确实会影响最终的规则覆盖,但这里有个坑你可能踩了。extends 的加载顺序是从前到后依次合并的,后面的配置会覆盖前面的。不过问题出在 no-unused-vars 这个规则上,它有点特殊。 如果你的自定义规则文件 custom-rules.js 里只是简单写了 "no-unused-vars": "off",那很可能是没生效,因为空气bnb的规则可能会强制重新启用这个规则。你需要明确地覆盖它的所有子选项,比如这样: module.exports = { rules: { "no-unused-vars": ["error", { "vars": "all", "args": "none", "ignoreRestSiblings": true }] } }; 另外,检查一下你的自定义配置文件是不是被正确加载了,有时候路径写错或者缓存问题会导致配置没生效。可以试着在命令行里加个 --debug 参数运行 ESLint,看看加载的配置文件路径对不对。 还有一点要注意,模板字符串里的变量(比如你写的 {{ unusedVar }})默认是会被 no-unused-vars 报错的,除非你在配置里明确告诉 ESLint 忽略这种场景。可以在 custom-rules.js 里加个专门针对模板的例外规则: module.exports = { rules: { "no-unused-vars": ["error", { "varsIgnorePattern": "^unusedVar$" }] } }; 总结一下:顺序是有影响的,但关键是你要确保自定义规则完整覆盖了空气bnb的配置,尤其是那些特殊的子选项。别忘了清理一下 ESLint 的缓存,省得改了半天发现还是老配置在生效。 回复 点赞 2026-02-19 09:05 端木卫利 Lv1 继承顺序确实是有影响的,后边的配置会覆盖前面的同名规则。不过你遇到的情况可能不是简单的覆盖问题。 no-unused-vars这种规则如果在两个配置里都有定义,可能会因为优先级或者解析方式导致冲突。即使换了顺序,也可能是因为airbnb的配置里对这个规则有更深层次的设定,比如额外的选项参数。 建议你在自定义配置里明确重写这个规则,而不是依赖继承顺序。像这样: module.exports = { rules: { 'no-unused-vars': ['error', { vars: 'all', args: 'after-used' }] } }; 这样能确保你的自定义规则完全生效,避免被airbnb的配置干扰。服务端代码经常会遇到类似的规则冲突,直接覆盖是最稳妥的办法。折腾继承顺序有时候真不如直接手动指定来得省心。 回复 点赞 7 2026-01-30 12:01 加载更多 相关推荐 2 回答 26 浏览 ESLint配置中extends顺序会影响规则优先级吗? 在项目里同时用了airbnb和vue的ESLint配置,调整extends顺序后报错还是没解决,这是怎么回事? 我设置了这样的配置文件: module.exports = { extends: [ '... Des.子武 前端 2026-01-25 22:24:24 1 回答 32 浏览 ESLint extends配置继承后规则冲突怎么办? 在项目里同时用了eslint:recommended和公司自定义的配置,结果no-console规则冲突了。我尝试在根配置里覆盖规则,但保存时还是报错:Error: Definition for ru... シ福萍 工具 2026-02-04 13:08:26 2 回答 33 浏览 ESLint配置extends继承后自定义规则不生效怎么办? 我在项目里用eslint-config-airbnb配置了基础规范,然后在项目根目录的.eslintrc.js里加了自定义规则: module.exports = { extends: ['airbn... 萌新.付楠 工具 2026-01-31 18:47:29 1 回答 22 浏览 ESLint在GitHub Actions报错但本地正常,如何解决配置差异? 在给项目配置GitHub Actions时,ESLint突然报错Error: Definition for rule 'comma-dangle' was not found,但本地运行npx esl... 一世杰 工具 2026-02-09 19:13:22 1 回答 14 浏览 ESLint的ignorePatterns配置为什么没生效? 最近在项目里配置了ESLint的ignorePatterns,把node_modules和dist目录加上去了,但运行时发现dist里的文件还是被检查了,这是怎么回事啊? 我的.eslintrc.js... 志远🍀 工具 2026-02-09 18:40:32 2 回答 22 浏览 ESLint规则冲突导致技术债务增加该怎么平衡? 最近团队统一了ESLint配置,但发现某些规则在紧急迭代时特别影响效率。比如必须用立即执行函数包裹组件逻辑,但快速修Bug时总想直接导出函数。 试过把规则设为warn,但同事说这样失去规范意义。现在每... Mr.夏沫 前端 2026-01-26 16:36:24 2 回答 54 浏览 ESLint和Prettier配置冲突怎么解决?代码格式检查老报错 最近团队要求统一代码规范,我把ESLint和Prettier都配上了,但每次保存代码都会报错,比如"Unexpected spaces"和"Missing semicolon"。 尝试过安装eslin... Zz子斌 前端 2026-02-17 00:11:28 1 回答 12 浏览 为什么我的ESLint在GitHub Actions中检测到错误但构建还是通过了? 我给项目配置了ESLint,并在GitHub Actions里加了lint检查步骤。但今天提交了一个明显违反规则的代码(比如少了个分号),控制台确实输出了错误,但最后构建状态还是显示成功了。我检查了.... UE丶玉霞 工具 2026-02-15 19:11:32 1 回答 74 浏览 为什么VSCode里的ESLint报错和.eslintrc配置不一致? 我刚在项目里配好了.eslintrc.json,但VSCode里还是显示被禁用的规则报错。已经装了ESLint插件并重启过IDE,运行eslint .命令却提示没问题。 配置文件是这样的: { "ru... 怡辰 工具 2026-02-06 18:56:27 2 回答 46 浏览 ESLint插件配置后为什么还是报“Unexpected token”错误? 在项目里装了eslint-plugin-react和@typescript-eslint/eslint-plugin,配置了相关规则,但写React组件时还是报“Unexpected token”错误... Code°亚楠 工具 2026-02-06 07:37:28
extends的加载顺序是从前到后依次合并的,后面的配置会覆盖前面的。不过问题出在no-unused-vars这个规则上,它有点特殊。如果你的自定义规则文件
custom-rules.js里只是简单写了"no-unused-vars": "off",那很可能是没生效,因为空气bnb的规则可能会强制重新启用这个规则。你需要明确地覆盖它的所有子选项,比如这样:另外,检查一下你的自定义配置文件是不是被正确加载了,有时候路径写错或者缓存问题会导致配置没生效。可以试着在命令行里加个
--debug参数运行 ESLint,看看加载的配置文件路径对不对。还有一点要注意,模板字符串里的变量(比如你写的
{{ unusedVar }})默认是会被no-unused-vars报错的,除非你在配置里明确告诉 ESLint 忽略这种场景。可以在custom-rules.js里加个专门针对模板的例外规则:总结一下:顺序是有影响的,但关键是你要确保自定义规则完整覆盖了空气bnb的配置,尤其是那些特殊的子选项。别忘了清理一下 ESLint 的缓存,省得改了半天发现还是老配置在生效。
no-unused-vars这种规则如果在两个配置里都有定义,可能会因为优先级或者解析方式导致冲突。即使换了顺序,也可能是因为airbnb的配置里对这个规则有更深层次的设定,比如额外的选项参数。建议你在自定义配置里明确重写这个规则,而不是依赖继承顺序。像这样:
这样能确保你的自定义规则完全生效,避免被
airbnb的配置干扰。服务端代码经常会遇到类似的规则冲突,直接覆盖是最稳妥的办法。折腾继承顺序有时候真不如直接手动指定来得省心。