CSDN 中文章不一定能及时更新,欢迎点击前往我的博客查看最新版本:许盛的博客

ESLint 是一款 Lint 工具,包含了代码质量检查等等。

而 Prettier 仅仅只是一个代码风格的约束工具,对于代码可能产生的 Bug 等并不关心。

虽然说 ESLint 其实也具备一定的代码风格的格式化能力,但是在实践中,我们一般采用 ESlint 来做代码质量的约束,用 Prettier 来做代码风格的约束。

那么如何避免两者规则不一致导致的冲突?以及如何将两者更好的整合起来使用呢?

规则冲突

当 ESLint 的规则和 Prettier 的规则相冲突时,就会发现一个尴尬的问题,用其中一种来格式化代码,另一种就会报错。

prettier 官方提供了一款工具 eslint-config-prettier 来解决这个问题。

本质上这个工具其实就是禁用掉了一些不必要的以及和 Prettier 相冲突的 ESLint 规则。

安装依赖:

npm install --save-dev eslint-config-prettier

修改 eslintrc 文件

// 在 extends 部分加入 prettier 即可
{"extends": ["...","prettier"]
}

整合使用

上面介绍的工具,仅仅只是将部分 ESLint 规则给禁用了,避免 Prettier 格式化之后的代码导致 ESLint 报错而已,如何将两者结合起来使用呢?

prettier 官方提供了一个 ESLint 插件 eslint-plugin-prettier。

这个插件的主要作用就是将 prettier 作为 ESLint 的规则来使用,相当于代码不符合 Prettier 的标准时,会报一个 ESLint 错误,同时也可以通过 eslint --fix 来进行格式化。

例如:

这样就相当于将 Prettier 整合进了 ESLint 中。

安装依赖:

npm install --save-dev eslint-plugin-prettier
npm install --save-dev prettier

修改 eslintrc 文件

{"plugins": ["prettier"],"rules": {"prettier/prettier": "error"}
}

简化配置

经过上面两步配置后, ESLint 的配置文件大概如下:

 {"extends": ["prettier"],"plugins": ["prettier"],"rules": {"prettier/prettier": "error"}
}

其实可以简化一下,直接 extend 一下 plugin:prettier/recommended 即可。

如下:

{"extends": ["plugin:prettier/recommended"]
}

上面这行配置,实际上相当于:

{"extends": ["prettier"],"plugins": ["prettier"],"rules": {"prettier/prettier": "error","arrow-body-style": "off","prefer-arrow-callback": "off"}
}

可以参考文档:https://github.com/prettier/eslint-plugin-prettier#recommended-configuration

总结

总结一下,将 ESLintPrettier 整合起来使用,其实非常简单。

1. 安装依赖

npm i --save-dev prettier
npm i --save-dev eslint-plugin-prettier eslint-config-prettier

2. 修改配置

{"extends": ["plugin:prettier/recommended" // 添加到数组的最后一个元素]
}

相关链接:

  • prettier 官方文档:https://prettier.io/docs/en/integrating-with-linters.html#docsNav
  • eslint-config-prettier:https://github.com/prettier/eslint-config-prettier
  • eslint-plugin-prettier:https://github.com/prettier/eslint-plugin-prettier
  • typescript-eslint:https://github.com/typescript-eslint/typescript-eslint/blob/master/docs/getting-started/linting/README.md#usage-with-prettier

ESLint 和 Prettier 配合使用相关推荐

  1. 更新版-梳理前端开发使用eslint和prettier来检查和格式化代码问题

    更新版,之前的版本可以看这里:梳理前端开发使用eslint和prettier来检查和格式化代码问题 一.问题痛点 在团队的项目开发过程中,代码维护所占的时间比重往往大于新功能的开发.因此编写符合团队编 ...

  2. eslint 保存自动格式化_代码规范之理解ESLint、Prettier、EditorConfig

    授权转载自:nowThen https://juejin.cn/post/6895889063111294990 前言 团队多人协同开发项目中困恼团队管理一个很大的问题是:无可避免地会出现每个开发者编 ...

  3. 【总结】1265- 理解 ESLint、Prettier、EditorConfig 代码规范

    前言 团队多人协同开发项目中困恼团队管理一个很大的问题是:无可避免地会出现每个开发者编码习惯不同.代码风格迥异,为了代码高可用.可维护性, 如何从项目管理上尽量统一和规范代码呢? [x] 文档约定 - ...

  4. vue项目接入eslint、prettier、husky+lint-staged

    引言 在vue-cli官方的脚手架创建项目时,会自动让选择Eslint+Prettier,如果是老项目想接入,那么按照下面步骤接入即可 eslint安装 npm i -D eslint eslint- ...

  5. 在vscode里配置ESLint和Prettier

    在vscode里配置ESLint和Prettier 文章目录 在vscode里配置ESLint和Prettier vscode插件和npm包区别 解决ESLint和Prettier冲突 vscode环 ...

  6. 前端代码规范工具ESLint和Prettier

    前端代码规范工具ESLint和Prettier 1. ESLint是什么? ESLint 是一个开源的 JavaScript 代码检查工具,由 Nicholas C. Zakas 于2013年6月创建 ...

  7. 安装lint-staged 报错:Cannot add lint-staged: only eslint, stylelint, prettier...

    错误背景: 在使用 prettier 格式化插件,我们希望提交代码时,借助 prettier 可以自动格式化所以需要安装: $ npx mrm lint-staged 不过安装过程中出现了错误 Can ...

  8. React 创建项目流程+配置 eslint、 prettier 和 commitlint 规范工程

    一. 利用create-react-app创建TS项目 React中文文档 :开始 – React npx create-react-app projectName --template typesc ...

  9. eslint 搭配 prettier 格式化 + husky 搭配 lint-staged 实现提交格式化和检测

    eslint 搭配 prettier 格式化 + husky 搭配 lint-staged 实现提交格式化和检测 注:本文基本是写给自己看的, 属于一个记录笔记, 避免每次配置都要查, 写得不清晰, ...

最新文章

  1. GROMACS运行参数整理(二)
  2. sharding jdbc sql路由日志
  3. 职场疑问:如何进行技术面试
  4. 你需要来自trustedinstaller的权限才能删除_前后端分离后的权限控制设计方案
  5. oracle数据库安装过程中出现主目录不兼容的问题
  6. python内函数名加括号和不加括号的区别,python中 函数名加括号与不加括号
  7. multisim模拟电子钟课设带视频报告下载
  8. spring cloud分布式整合zipkin的链路跟踪
  9. java se 7u67_Java SE 7u72和Java SE 7u71有什么不同
  10. php怎么修改滑动条,修改滚动条样式的方法
  11. 一个专家眼中的Go与Java垃圾回收算法大对比
  12. Sublime Text安装与配置教程
  13. jmeter 压测之动态数据关联
  14. C# .NET 爬虫抓取京东商城所有商品分类
  15. python爬取steam/epic喜加一信息高效白嫖
  16. dvr行业的linux
  17. Python小程序(1)--汇率换算器
  18. 一、初学计算机——认识键盘布局及快捷键使用
  19. 计算总成绩和平均成绩
  20. 解决ubuntu+windows双系统安装时无法修改SATA Mode为AHCI模式的问题(安装类型页是空白)

热门文章

  1. 客制化键盘编程_装机单推荐 篇二:垃圾佬的第一个客制化键盘---gk64升级版
  2. Unity URP渲染管线下体积光的实现
  3. 模式识别与机器学习作业——SVM(Python实现)
  4. 一些常用的「a」标签分享方法
  5. BootstrapTooltip
  6. 你可得知道物理地址与IP地址
  7. asp.net session 串值 串号 变值
  8. 什么是devops这个词的意思?转载网上
  9. 使用es6--对象数组的多种去重方式
  10. while,do while,for 循环语句总结大全,一步到位