Prettier 和 ESLint 冲突了怎么办?
我刚在项目里同时配了 Prettier 和 ESLint,结果保存代码时格式老是打架。比如 ESLint 要求分号结尾,Prettier 却自动删掉,改完一保存又变回去了,烦死了。
我试过装 eslint-config-prettier 和 eslint-plugin-prettier,也按网上教程改了配置,但还是不行。这是我的 .eslintrc.cjs:
module.exports = {
extends: ['eslint:recommended', 'plugin:prettier/recommended'],
rules: {
'prettier/prettier': 'error',
'semi': ['error', 'always']
}
};
semi规则和 Prettier 的冲突了,plugin:prettier/recommended本身已经集成了eslint-config-prettier,会自动关闭所有和 Prettier 冲突的 ESLint 格式规则,但你又手动加了'semi': ['error', 'always'],等于跟 Prettier 打架。直接用这个配置改掉:
然后确保你用的 Prettier 版本是 2.x(现在基本都 2.x 了),再检查下有没有
.prettierrc或prettier字段在package.json里,比如:如果项目里用了
.editorconfig,也顺手删掉缩进相关的配置,别让三个人抢着管格式。最后一步,重启 VS Code(或者你用的编辑器),别光保存,有些插件缓存没清干净会继续乱来。
搞定后,你改代码保存一次,再看是不是不再反复横跳了。