当项目同时使用 Eslint 和 Prettier 时,往往格式化时会有冲突,导致最终格式化效果不对。发现问这个问题的人还不少,所以这里记录一下解决办法,需要的时候发给人看。

其实解决方案很成熟,就是用到两个插件,eslint-config-prettiereslint-plugin-prettier

当你的项目已经安装了 eslint 和 prettier 后,也有了各自的配置文件后,安装以上两个插件:

pnpm add eslint-config-prettier eslint-plugin-prettier -D

然后在你的 eslint 配置文件中的 extends 中最后加上一个 plugin:prettier/recommended

{
  // ...
  "extends": [
    // 一些别的配置
    "eslint:recommended",
    "plugin:@typescript-eslint/recommended",
    "plugin:vue/vue3-essential",
    // 将这个添加到最后
    "plugin:prettier/recommended"
  ]
}

如果使用的是 vscode 编辑器,注意要安装这两个插件:

vscode-plugin-eslint vscode-plugin-prettier

同时加上这一段配置,可以在项目中添加配置文件 .vscode/settings.json,文件内容如下:

{
  "editor.formatOnSave": true,
  "editor.codeActionsOnSave": {
    "source.fixAll": "explicit"
  },
  "editor.defaultFormatter": "esbenp.prettier-vscode"
}

此时重启编辑器,可以做到完美格式化代码。要注意的是,此时不要在 eslint 配置文件中加上代码风格相关的配置,这样可能又会跟 prettier 冲突。上面的配置可以做到让 eslint 检查代码错误,让 prettier 格式化。所以要改变代码风格,请到 prettier 中修改。