Git提交前自動(dòng)進(jìn)行代碼格式化 prettier pre-commit Hook eslint-config-prettier

prettier

?pre-commit Hook?

eslint-config-prettier沖突解決

conventional-changelog/commitlint

一、create-react-app環(huán)境配置prettier,在git commit前進(jìn)行代碼格式化谷浅,統(tǒng)一團(tuán)隊(duì)開(kāi)發(fā)代碼格式瓢阴,并且規(guī)范git commit message 提示信息格式

prettier官方網(wǎng)站:https://prettier.io/

二姐直、具體實(shí)現(xiàn)步驟

第一步:搭建create-react-app typescript環(huán)境

npx create-react-app my-app --template typescript

第二步:

安裝 prettier包

yarn add --dev --exact prettier

安裝報(bào)錯(cuò):eslint@8.8需要指定版本或大于等于16+


安裝prettier過(guò)程中媳搪,eslint和nodejs版本不匹配報(bào)錯(cuò)

解決:卸載:nodejs,下載并安裝nodejs@16+

?? 第三步:生成prettier配置文件.prettierrc.json

echo {}> .prettierrc.json? --建議手動(dòng)創(chuàng)建.prettierrc.json文件,不然字符集不對(duì)畜份,不要使用這個(gè)命令創(chuàng)建(坑)

.prettierrc.json文件中办素,只有:? {}


第四步:新建prettier忽略文件?.prettierignore?

#Ignore artifacts:

build

coverage

提示:如果要手動(dòng)格式化--執(zhí)行代碼格式化命令

yarn prettier --write .

??????????? 一般開(kāi)發(fā)的時(shí)候角雷,都是自動(dòng)化執(zhí)行格式化命令


第五步:安裝并配置pre-commit

Hook 在git

commit前自動(dòng)格式化代碼

? ? npxmrm@2 lint-staged

???????? 修改package.json

??????????? "lint-staged": {

??????????? "*.{js,css,md,ts,tsx}":

? ? ? ? ? ? ? ? ?"prettier --write"

??????????? }

????? 修改:package.json

"husky":

{

??????????????????"hooks": {

??????????????????"pre-commit": "lint-staged"

??????????????????? }

????????????????? },



第六步:

create-react-app 自帶eslint,在開(kāi)發(fā)中eslint和prettier有可能有沖突,需要解決


安裝eslint-config-prettier開(kāi)發(fā)Dev依賴(lài)

yarn add? eslint-config-prettier@6.15 --dev

?? 修改:package.json用prettier配置覆蓋上面的react-app配置


修改eslint配置性穿,覆蓋默認(rèn)配置

第六步:

????? 問(wèn)題:

?????????? 解決:? http://www.reibang.com/p/38f04aef1c9d

?????????? git config --globalcore.autocrlftrue


第七步:團(tuán)隊(duì)開(kāi)發(fā)需要規(guī)范git

commit message提示信息勺三,統(tǒng)一提示信息的寫(xiě)法

????????????????? conventional-changelog/commitlin

?????????????????https://github.com/conventional-changelog/commitlint

?????????????????? 注意:需要認(rèn)真閱讀文檔,如果message不符合規(guī)范需曾,則報(bào)錯(cuò)

1.安裝@commitlint/config-conventional

@commitlint/cli

? yarn add @commitlint/config-conventional@12@commitlint/cli --dev


2.執(zhí)行命令:

?? echo "module.exports= {extends: ['@commitlint/config-conventional']}">

commitlint.config.js???? --建議手動(dòng)創(chuàng)建commitlint.config.js文件吗坚,不然字符集不對(duì),不要使用這個(gè)命令創(chuàng)建(坑)

文件名:? commitlint.config.js

內(nèi)容:

module.exports

= { extends: ["@commitlint/config-conventional"]

};


修改:

package.json

? "husky": {

??? "hooks": {

????? "pre-commit":"lint-staged",

????? "commit-msg": "commitlint-E HUSKY-GIT-PARAMS"

??? }

? },


npx husky add .husky/commit-msg 'npx --no -- commitlint --edit "$1"'



修改:

App.tsx

git add .

git commit -m “fix: change App.tsx”


三呆万、git message 提示信息規(guī)范構(gòu)成

git message 提示信息規(guī)范構(gòu)成: Header 是必需的商源,Body 和 Footer 可以省略。

??1.Header包括: 包括三個(gè)字段:type(必需)谋减、scope(可選)和subject(必需)牡彻。

(1)

type指本次提交的類(lèi)型,為必填項(xiàng)出爹,必須為以下之一:

feat:一項(xiàng)新功能

fix:一個(gè)錯(cuò)誤修復(fù)

docs:僅文檔更改

style:不影響代碼邏輯的更改(空白庄吼,格式缎除,缺少分號(hào)等)

refactor:既不修正錯(cuò)誤也不增加功能的代碼更改(重構(gòu))

perf:改進(jìn)性能的代碼更改

test:添加缺失或更正現(xiàn)有測(cè)試

build:影響構(gòu)建系統(tǒng)或外部依賴(lài)項(xiàng)的更改(gulp,npm等)

ci:對(duì)CI配置文件和腳本的更改

chore:更改構(gòu)建過(guò)程或輔助工具和庫(kù)总寻,例如文檔生成

(2)Scope用于說(shuō)明commit 影響的范圍伴找,比如數(shù)據(jù)層、控制層废菱、視圖層等等,視項(xiàng)目不同而不同抖誉。


(3)subject是commit 目的的簡(jiǎn)短描述殊轴,以動(dòng)詞開(kāi)頭,使用第一人稱(chēng)現(xiàn)在時(shí)袒炉,比如change旁理,而不是changed或changes;第一個(gè)字母小寫(xiě),結(jié)尾不加句號(hào)(.)

2.Body可選:Body部分是對(duì)本次commit 的詳細(xì)描述,可以分成多行我磁。

有兩個(gè)注意點(diǎn)孽文。

(1)使用第一人稱(chēng)現(xiàn)在時(shí),比如使用change而不是changed或changes夺艰。

(2)應(yīng)該說(shuō)明代碼變動(dòng)的動(dòng)機(jī)芋哭,以及與以前行為的對(duì)比。

3.Footer 可選

Footer部分只用于兩種情況郁副。

(1)不兼容變動(dòng)

如果當(dāng)前代碼與上一個(gè)版本不兼容减牺,則

Footer 部分以BREAKING

CHANGE開(kāi)頭,后面是對(duì)變動(dòng)的描述存谎、以及變動(dòng)理由和遷移方法拔疚。

(2)關(guān)閉Issue如果當(dāng)前

commit 針對(duì)某個(gè)issue,那么可以在

Footer 部分關(guān)閉這個(gè)issue 既荚。

命令:Closes #234

具體規(guī)范內(nèi)容:

https://github.com/conventional-changelog/commitlint/tree/master/@commitlint/config-conventional#type-enum

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末稚失,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子恰聘,更是在濱河造成了極大的恐慌句各,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,270評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件憨琳,死亡現(xiàn)場(chǎng)離奇詭異诫钓,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)篙螟,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,489評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)菌湃,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人遍略,你說(shuō)我怎么就攤上這事惧所≈枳” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,630評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵下愈,是天一觀的道長(zhǎng)纽绍。 經(jīng)常有香客問(wèn)我,道長(zhǎng)势似,這世上最難降的妖魔是什么拌夏? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,906評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮履因,結(jié)果婚禮上障簿,老公的妹妹穿的比我還像新娘。我一直安慰自己栅迄,他們只是感情好站故,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,928評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著毅舆,像睡著了一般西篓。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上憋活,一...
    開(kāi)封第一講書(shū)人閱讀 51,718評(píng)論 1 305
  • 那天岂津,我揣著相機(jī)與錄音,去河邊找鬼余掖。 笑死寸爆,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的盐欺。 我是一名探鬼主播赁豆,決...
    沈念sama閱讀 40,442評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼冗美!你這毒婦竟也來(lái)了魔种?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,345評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤粉洼,失蹤者是張志新(化名)和其女友劉穎节预,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體属韧,經(jīng)...
    沈念sama閱讀 45,802評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡安拟,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,984評(píng)論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了宵喂。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片糠赦。...
    茶點(diǎn)故事閱讀 40,117評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出拙泽,到底是詐尸還是另有隱情淌山,我是刑警寧澤,帶...
    沈念sama閱讀 35,810評(píng)論 5 346
  • 正文 年R本政府宣布顾瞻,位于F島的核電站泼疑,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏荷荤。R本人自食惡果不足惜退渗,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,462評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望蕴纳。 院中可真熱鬧氓辣,春花似錦、人聲如沸袱蚓。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,011評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)喇潘。三九已至,卻和暖如春梭稚,著一層夾襖步出監(jiān)牢的瞬間颖低,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,139評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工弧烤, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留忱屑,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,377評(píng)論 3 373
  • 正文 我出身青樓暇昂,卻偏偏與公主長(zhǎng)得像莺戒,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子急波,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,060評(píng)論 2 355

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