简述 eslint 与 prettier 的区别

190 阅读1分钟

定位

Prettier

image-20240815173749235.png 官方定义:Prettier是一个固执己见的代码格式化器

ESLint

image-20240815174129182.png

官方定义:ESLint 是一个识别和报告在 ECMAScript/JavaScript 代码中发现的模式的工具(也就是代码校验工具)

总结

这 2 个工具定位不同,Prettier 专注的是代码格式化,ESLint 专注的是代码规则校验

image-20240815180134880.png

Prettier 这里也说了重点,Prettier 只做了格式化规则,并没有做代码质量规则。用 Prettier 格式化代码,用 Linters 去捕获 bug

eslint 格式化代码

其实现在 eslint 的 vscode 插件也已经提供了自动格式化代码功能。.vscode/settings.json中只需要按照这么去配置就行了

"editor.formatOnSave": true,
"editor.codeActionsOnSave": {
    "source.fixAll.eslint": "explicit"
}

prettier 格式化代码

在 vscode 配置中,直接配置这么一段即可

{
  "editor.defaultFormatter": "esbenp.prettier-vscode"
}

eslint + prettier 格式化代码

这种组合的缺点就是 eslint 代码格式配置可能会与 perttier 的代码格式配置冲突。需要开发者自定配置 eslint 进行解决

如果 2 者的规则都想用的话,则把上面的 2 段配置合并即可

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

个人意见

虽然 eslint 的定位是一个代码校验工具,但它里面实际也有关于代码风格的配置。

如果你想所有风格都可以进行自己配置(prettier 的某些代码风格是无法配置的),那就单独使用 eslint 格式化代码就行了

如果你喜欢 perttier 的代码风格格式化,那就继续使用 eslint + prettier 的组合吧