Eslint+Prettier 實(shí)現(xiàn)代碼 git 提交時(shí)自動(dòng)格式化及修復(fù)

一贞间、問(wèn)題闡述:為什么要使用 Eslint+prettier 自動(dòng)格式化代碼酿炸?

現(xiàn)在前端的項(xiàng)目越來(lái)越大叨叙,項(xiàng)目中每個(gè)人都有自己習(xí)慣使用的編輯器,每個(gè)人的編碼風(fēng)格也不相同船惨,導(dǎo)致后期代碼 review 和項(xiàng)目維護(hù)難度較大

二柜裸、Eslint+prettier 有什么好處

1、借助 husky 在代碼 commit 的時(shí)候使用粱锐,使用prettier進(jìn)行代碼格式化疙挺,Eslint(也可以進(jìn)行代碼格式化的規(guī)范)進(jìn)行代碼自動(dòng)補(bǔ)全或修復(fù)

2、開(kāi)發(fā)者不用關(guān)心編寫(xiě)的過(guò)程怜浅,只需要在提交代碼的時(shí)候關(guān)注下commit的結(jié)果铐然,但是有些時(shí)候 Eslint 可能無(wú)法修復(fù),我們可以根據(jù)錯(cuò)誤提示進(jìn)行手動(dòng)修復(fù)恶座,平時(shí)編寫(xiě)代碼只要注意編碼規(guī)范搀暑,一般問(wèn)題不大

三、配置及使用過(guò)程跨琳,以 vue-cli 搭建的項(xiàng)目為例

1自点、前期依賴包安裝:husky、eslint脉让、lint-staged桂敛、prettier

yarn add husky eslint lint-staged prettier --dev

npm install husky eslint lint-staged prettier -D

2、根據(jù) git 提交過(guò)程進(jìn)行配置的思路

提交代碼時(shí)需要借助 git 提供的鉤子對(duì)代碼進(jìn)行檢測(cè) — husky 配置

提交之前要先進(jìn)行代碼格式化 — prettier 配置

對(duì)于不規(guī)范的代碼進(jìn)行修復(fù) — Eslint 配置

對(duì)于 Eslint 修復(fù)不了的代碼 commit 會(huì)失敗并給出提示 — “git add” 配置


上述四點(diǎn)需要在 package.json 內(nèi)部進(jìn)行配置溅潜,如下:

// package.json

{

? ...

"husky": {

"hooks": {

"pre-commit":"lint-staged"

? ? }

? },

"lint-staged": {

"src/**": [

"prettier --config .prettierrc --write",

"eslint --fix",

"git add"

? ? ]

? }

}

3术唬、對(duì)應(yīng)上述 package.json 里需要的文件進(jìn)行對(duì)應(yīng)的創(chuàng)建

項(xiàng)目根目錄下創(chuàng)建 .prettierrc

prettier 文檔地址prettier.io/docs/en/opt…

// .prettierrc

{

"printWidth":200,

"tabWidth":2,

"useTabs":true,

"semi":false,

"singleQuote":true,

"bracketSpacing":true,

"arrowParens":"avoid"

}

4、在工程項(xiàng)目根目錄 .eslintrc.js / .eslintrc.json 添加 rules 規(guī)則

項(xiàng)目根目錄下 .eslintrc.js 中添加 rules 規(guī)則

eslint 文檔地址eslint.org/

// .eslintrc.js

// extends:["@vue/prettier"] 一定要配置 prettier

module.exports= {

root:true,

? env: {

node:true

? },

extends: ["plugin:vue/essential","@vue/prettier","@vue/typescript"],

? rules: {

"no-console": process.env.NODE_ENV ==="production"?"error":"off",

"no-debugger": process.env.NODE_ENV ==="production"?"error":"off",

"no-dupe-keys":"error",

"no-duplicate-case":"error",

"no-empty": ["error", {"allowEmptyCatch":true}],

"no-ex-assign":"error",

"no-extra-boolean-cast":"error",

"no-extra-semi":"error",

"curly":"error"

? },

? parserOptions: {

parser:"@typescript-eslint/parser"

? }

};

四伟恶、對(duì)配置進(jìn)行驗(yàn)證

1碴开、項(xiàng)目中配置規(guī)則要求使用單引號(hào)

git commit 之前代碼截圖如下

git commit -m "自動(dòng)修復(fù)",命令執(zhí)行后如下圖

上圖所示配置的配置已經(jīng)生效

五、總結(jié)

代碼自動(dòng)格式化及自動(dòng)修復(fù)潦牛,有效提高了項(xiàng)目的質(zhì)量和協(xié)同作戰(zhàn)的效率

后期可獨(dú)立搭建工程化項(xiàng)目眶掌,進(jìn)行更深的規(guī)則定制


原文:Eslint+Prettier 實(shí)現(xiàn)代碼 git 提交時(shí)自動(dòng)格式化及修復(fù)_dearyang-CSDN博客

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市巴碗,隨后出現(xiàn)的幾起案子朴爬,更是在濱河造成了極大的恐慌,老刑警劉巖橡淆,帶你破解...
    沈念sama閱讀 211,290評(píng)論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件召噩,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡逸爵,警方通過(guò)查閱死者的電腦和手機(jī)具滴,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,107評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)师倔,“玉大人构韵,你說(shuō)我怎么就攤上這事∏魉遥” “怎么了疲恢?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,872評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)瓷胧。 經(jīng)常有香客問(wèn)我显拳,道長(zhǎng),這世上最難降的妖魔是什么搓萧? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,415評(píng)論 1 283
  • 正文 為了忘掉前任杂数,我火速辦了婚禮,結(jié)果婚禮上瘸洛,老公的妹妹穿的比我還像新娘耍休。我一直安慰自己,他們只是感情好货矮,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,453評(píng)論 6 385
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著斯够,像睡著了一般囚玫。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上读规,一...
    開(kāi)封第一講書(shū)人閱讀 49,784評(píng)論 1 290
  • 那天抓督,我揣著相機(jī)與錄音,去河邊找鬼束亏。 笑死铃在,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播定铜,決...
    沈念sama閱讀 38,927評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼阳液,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了揣炕?” 一聲冷哼從身側(cè)響起帘皿,我...
    開(kāi)封第一講書(shū)人閱讀 37,691評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎畸陡,沒(méi)想到半個(gè)月后鹰溜,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,137評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡丁恭,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,472評(píng)論 2 326
  • 正文 我和宋清朗相戀三年曹动,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片牲览。...
    茶點(diǎn)故事閱讀 38,622評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡墓陈,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出竭恬,到底是詐尸還是另有隱情跛蛋,我是刑警寧澤,帶...
    沈念sama閱讀 34,289評(píng)論 4 329
  • 正文 年R本政府宣布痊硕,位于F島的核電站赊级,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏岔绸。R本人自食惡果不足惜理逊,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,887評(píng)論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望盒揉。 院中可真熱鬧晋被,春花似錦、人聲如沸刚盈。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,741評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)藕漱。三九已至欲侮,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間肋联,已是汗流浹背威蕉。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,977評(píng)論 1 265
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留橄仍,地道東北人韧涨。 一個(gè)月前我還...
    沈念sama閱讀 46,316評(píng)論 2 360
  • 正文 我出身青樓牍戚,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親虑粥。 傳聞我的和親對(duì)象是個(gè)殘疾皇子如孝,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,490評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容