ESLint如何单独限制对象属性作用域内的多余空行?
解决方法
原生ESLint的no-multiple-empty-lines规则不支持按语法作用域配置差异化的空行限制,你可以通过ESLint官方维护的Stylistic样式插件实现需求,具体配置如下:
配置方案
Stylistic插件提供的@stylistic/no-multiple-empty-lines规则扩展了原生规则能力,新增了maxInObjects、maxInClasses等针对特定作用域的空行限制配置,可以满足你的要求。
操作步骤
- 安装插件(如未安装)
npm install @stylistic/eslint-plugin --save-dev
- 修改ESLint配置文件:
{ "plugins": ["@stylistic"], "rules": { // 可直接关闭原生规则,插件规则完全兼容原生配置 "no-multiple-empty-lines": "off", "@stylistic/no-multiple-empty-lines": ["error", { "max": 1, // 全局仍保留最多1行空行的配置 // 对象内部属性之间最多允许0个空行,即不允许出现空行 "maxInObjects": 0 }] } }
效果说明
- 全局代码逻辑块之间仍然允许1行空行分隔,和你原有配置逻辑完全一致
- 对象字面量内部的属性之间不允许出现空行,你给出的非法示例会直接触发规则报错
如果不想引入额外插件,也可以通过no-restricted-syntax规则自定义匹配对象字面量内部多空行的模式抛出错误,但配置复杂度较高,更推荐上述方案。
内容的提问来源于stack exchange,提问作者Guilherme Avanci
相关产品推荐
相关产品推荐

