React 项目中添加 ESLint + Perttier 做代码规范

在阅读本篇文章之前请先阅读我的《在 React 项目中集成 ESLint 做代码规范》这篇文章,或者你已经在项目中成功引入了ESLint。

首先我们先来简单了解一下 Perttier 的用途

 Perttier 的中文意思是“漂亮的、机灵的”,也是一个流行的代码格式化工具的名称,它能够解析代码,使用你自己设定的规则来重新打印出格式规范的代码。它和ESLint的区别在于Prettier是一个专注于代码格式化的工具,对代码不做质量检查。使用Prettier在code review时不需要再讨论代码样式,节省了时间与精力。

接下来详细介绍一下 Perttier 的安装配置步骤

步骤一、安装 Perttier

npm install --save-dev --save-exact prettier

npm install --save-dev stylelint-config-prettier

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

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

1-1

步骤二、使用 ESLint 运行 Perttier 

修改项目根目录中的 .eslintrc.js 文件 extends 字段为 extends: ['prettier']  ---(图2-1中的标记1)

项目根目录中的 .eslintrc.js 文件 rules 中添加一项 "prettier/prettier":"error" ---- (图2-1中的标记2)

点击查看修改依据

2-1

步骤三、新建 .prettierrc.js 配置文件

在项目根目录下创建 .prettierrc.js 配置文件,在该文件中可以按照团队偏好自定义配置

点击查看 .prettierrc.js 中的所有配置项 官方文档中的配置项经过翻译后的网络资源配置项

3-1
3-2

步骤四、在 VsCode 编辑其中安装相应插件

安装如图 4-1 和 4-2 这两个插件后重启编辑器即可。

4-1
4-2

补充:

1、在步骤二中我在 .eslintrc.js 文件中将 extends 字段添加 extends: ['prettier']  ---(图2-1中的标记1)是因为我想要在项目中自定义配置  .prettierrc.js 文件,

而在 eslint-plugin-prettier 提供了另一种使用方法:即在 .eslintrc.js 文件中将 extends 字段添加 extends: ['plugin:prettier/recommended']  --- 这样写的作用是使用 eslint-plugin-prettier 插件中暴露出的推荐的配置如图end-1。

end-1

2、当 Prettier 在项目中集成好并生效后可能会报这样一个错误,如图end-2

end-2

报这个错误的原因是简单:简单来说是换行符的问题在 Windows 和 Linus 下文本文件换行符不一致引起的(点击查看详细原因及解决方案

这里 已经给出了许多解决方案,而在我的项目中,因为团队成员中用的都是 Windows 所以就选用了在 .prettierrc.js 配置 endOfLine: 'auto' 的方案,如图 end-3

end-3

3、在ESLint + Pretter 都配置完成后出现一个奇怪的问题:eslint 提示class类名要使用单引号,但Pretter提示class类名要使用双引号。

尴尬的是我将类名改为单引号Pretter报错,我将class类名改为双引号eslint报错,如下图 end-4

end-4

遇到这种报错情况:

我首先检查了eslint规则中配置了单引号规则: 'jsx-quotes': ['error', 'prefer-single'] 

其次我检查了pretter也配置了单引号规则:singleQuote: true

eslint 和 pretter 中都是采用的单引号规则,为什么pretter还会报错,要求改为双引号呢。当我检查编辑器也没有错误时,我将问题锁定在pretter上,在我仔细阅读pretter规则配置后发现有这样一条规则    jsxSingleQuote: true, 加上此条配置即可解决当前错误。




注意1:当你在项目中集成 ESLint 和 Perttier 之后团队协作是基本上就可以写出规范一致的代码了,但在项目中往往少不了的还有样式文件,那么如何才能让style样式也规范一下呢,请阅读 《React 项目中引入 Stylelint 做样式表代码规范》

注意2:当你在项目中集成 ESLint 和 Perttier 之后团队协作是基本上就可以写出规范一致的代码了,不过团队中总会有些成员无视这些规则,将不规范的代码提交的远程,如何避免这种操作呢,放心我们有办法阻止这些不规范的代码提交到远程的操作 ---- 请查看《React 项目中引入 Husky 和 Lint-staged》来做 git commit 提交预检查。



参考网址:

Prettier官网: https://prettier.io/docs/en/options.html

https://github.com/prettier/eslint-plugin-prettier#options

https://github.com/prettier/eslint-config-prettier#special-rules

//www.greatytc.com/p/d6a69eb08f07

https://zhuanlan.zhihu.com/p/87586114

https://segmentfault.com/a/1190000021803437

https://www.cnblogs.com/jiaoshou/p/12004077.html

https://www.cnblogs.com/victorlyw/p/13589682.html

https://blog.csdn.net/qq_39548647/article/details/105135003?utm_medium=distribute.pc_relevant.none-task-blog-blogcommendfrommachinelearnpai2-1.channel_param&depth_1-utm_source=distribute.pc_relevant.none-task-blog-blogcommendfrommachinelearnpai2-1.channel_param

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,884评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,347评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,435评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,509评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,611评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,837评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,987评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,730评论 0 267
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,194评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,525评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,664评论 1 340
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,334评论 4 330
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,944评论 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,764评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,997评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,389评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,554评论 2 349