ESLint 和 Prettier 配合时为什么格式化冲突?
我按照网上的教程配了 ESLint + Prettier,但保存文件时格式老是打架。比如 Prettier 想加个分号,ESLint 却报错说不能加分号,明明 .eslintrc 里已经关了这个规则。
我试过用 @eslint-config-prettier 关掉冲突规则,也装了 eslint-plugin-prettier,但还是不行。这是我的配置:
{
"extends": ["eslint:recommended", "plugin:prettier/recommended"],
"rules": {
"semi": ["error", "never"]
}
}
问题出在你的配置有点混乱。你同时用了两种方式来集成Prettier:plugin和config,这样反而会冲突。更清晰的配置方式是只选一种:
1. 首先确保安装了这些包:
2. 然后.eslintrc改成这样:
3. 单独配一个.prettierrc文件放Prettier的规则,比如:
关键点是:
- 只用eslint-config-prettier来关掉冲突规则
- 不要把Prettier的规则混在ESLint里
- Prettier的格式化交给.prettierrc管理
这样分离开后,ESLint负责代码质量,Prettier负责样式,各司其职就不会打架了。我上次这样配完终于能愉快地coding了,不用再被格式问题烦死。
在项目根目录建个 .prettierrc 文件,把分号关掉:
或者你嫌麻烦,直接把 ESLint 的 semi 规则删了,让 Prettier 全权负责格式化,ESLint 只管代码质量,这样最省心,我项目里都这么干的。