如何配置ESLint规则区分普通块注释与JSDoc注释的换行要求
解决方案
要实现普通块注释/* ... */前后必须换行,JSDoc注释/** ... */仅需前置换行的需求,只需调整lines-around-comment规则的正则匹配逻辑,具体配置如下:
修改lines-around-comment规则
把你现有配置里的lines-around-comment替换成下面的内容:
"lines-around-comment": [ "warn", { "beforeBlockComment": true, "afterBlockComment": true, "ignorePattern": "^\\*\\*", "ignoreComments": false } ]
配置逻辑说明
beforeBlockComment: true:强制所有块注释(不管是普通注释还是JSDoc)前面必须有换行afterBlockComment: true:默认要求块注释后面加换行,但通过ignorePattern让JSDoc注释跳过这个检查ignorePattern: "^\\*\\*":精准匹配JSDoc注释里开头的**(也就是/**内部的起始部分),这样ESLint就不会检查这类注释后面的换行要求ignoreComments: false:保证规则不会完全忽略匹配到的JSDoc注释,只是跳过它的后置换行检查
完整配置片段(核心部分)
结合你已有的spaced-comment配置,最终规则里的相关部分如下:
"rules": { // 其他原有规则保持不变 "lines-around-comment": [ "warn", { "beforeBlockComment": true, "afterBlockComment": true, "ignorePattern": "^\\*\\*", "ignoreComments": false } ], "spaced-comment": [ "error", "always", { "exceptions": ["*"] } ] // 其他原有规则保持不变 }
效果验证
配置完成后,你的目标注释格式会被正确校验:
- 普通块注释
/* ... */前后必须有换行,否则会触发警告 - JSDoc注释
/** ... */只需要前面有换行,后面直接跟代码(比如变量或函数定义)不会触发任何警告
内容的提问来源于stack exchange,提问作者AaronK
相关产品推荐
相关产品推荐

