ESLint是否存在可禁止函数体内部使用空行的校验规则
解决方案
你可以通过ESLint内置规则实现需求,无需安装第三方插件,以下是两种可行方案:
方案1:使用padding-line-between-statements规则(推荐)
该规则可以精准控制不同代码块内语句之间的空行要求,只需要在你的ESLint配置文件中添加如下规则即可限制所有函数体内部不允许出现空行:
// .eslintrc.js 配置示例 module.exports = { rules: { 'padding-line-between-statements': [ 'error', // 匹配所有块级作用域内的语句,要求任意两条语句之间不能有空行 { blankLine: 'never', prev: '*', next: '*', selector: 'BlockStatement > *' } ] } }
如果需要保留例外场景,比如允许注释前后有空行、类成员之间有空行,可以额外新增对应配置项覆盖上面的通用规则即可。
方案2:自定义简易ESLint规则
如果上面的通用配置无法满足你的特殊校验需求(比如要单独针对普通函数、箭头函数、类方法做不同的空行限制),可以自己编写自定义ESLint规则,核心逻辑为遍历所有函数的BlockStatement节点,统计节点内相邻代码行的换行次数,超过1次就抛出错误提示即可。
另外要注意内置的no-multiple-empty-lines规则虽然可以限制全局最大连续空行数,但无法单独作用于函数内部,不建议为了该需求修改全局空行配置。
内容的提问来源于stack exchange,提问作者AndreyProgr
相关产品推荐
相关产品推荐

