ESLint与Prettier多行类定义缩进冲突该如何解决?
解决Prettier与ESLint在类定义换行缩进上的冲突
问题场景
当类定义过长无法单行显示时,Prettier会在换行后的implements语句前添加缩进(此格式符合预期),但ESLint会抛出indent错误,且找不到可调整ESLint该行为的配置项,导致两者格式判断不一致,形成循环冲突。
Prettier格式化结果(ESLint报错)
// ESLint throws an error export default class FormFieldTemplateCheckboxList implements ClassComponent<FormFieldTemplateCheckboxListProps> {}
ESLint期望格式(Prettier保存时会自动覆盖)
// Prettier formats to the above on save export default class FormFieldTemplateCheckboxList implements ClassComponent<FormFieldTemplateCheckboxListProps> {}
修复方案
使用eslint-config-prettier插件,并移除ESLint配置中的indent规则:
原.eslintrc.json中的规则:
"rules": { "indent": ["error", "tab", { "SwitchCase": 1 }] }
修改后让Prettier全权控制缩进规则,即可消除两者的冲突,不再报错。
内容的提问来源于stack exchange,提问作者Dolan
相关产品推荐
相关产品推荐

