摘要:而解決的需求既是拒絕向倉庫提交錯(cuò)誤代碼。的配置就在項(xiàng)目文件夾下面的文件夾中。而存在報(bào)錯(cuò)的話,會(huì)終止提交。而只是多帶帶鉤子,因此還需要在這個(gè)鉤子下去做相同的配置。
tslint 配合pre-commit的意義
為什么用pre-commit 加 tslint(jshint,eslint原理都類似),因?yàn)樵陧?xiàng)目中我們會(huì)經(jīng)常忘記主動(dòng)的去做代碼檢查,雖然結(jié)合webpack各種構(gòu)建工具下,存在*slint報(bào)錯(cuò),項(xiàng)目會(huì)跑不起來。但在某些情況下,可能會(huì)因?yàn)橹保蛘咂渌颍瑳]有去觀察項(xiàng)目運(yùn)行的情況就倉促提交。團(tuán)隊(duì)開發(fā)的情景下,可能會(huì)成為別人的麻煩。而pre-commit tslint解決的需求既是:拒絕向倉庫提交錯(cuò)誤代碼。
git hooks在配置tslint pre commit之前,首先需要了解git hooks,正如它的名字所示,這是一個(gè)關(guān)于git 操作的鉤子,比如我們想要在做遠(yuǎn)程倉庫推送時(shí),那就會(huì)觸發(fā)pre-push這個(gè)鉤子,然后在這個(gè)鉤子中寫下自己想做的事。git hooks的配置就在項(xiàng)目.git文件夾下面的hooks文件夾中。
在寫相關(guān)的鉤子函數(shù)時(shí),需要注意的是,將鉤子后面的sample后綴去掉,代碼才會(huì)生效。
比如,本文中用到的pre-commit這個(gè)鉤子。
更多關(guān)于git hooks的介紹,請參考:https://git-scm.com/book/en/v...
開始配置1.打開項(xiàng)目中的.git/hooks文件夾,找到pre-commit.sample文件,將以下代碼替換到文件中。
#!/bin/bash TSLINT="$(git rev-parse --show-toplevel)/node_modules/.bin/tslint" for file in $(git diff --cached --name-only | grep -E ".ts$") do git show ":$file" | "$TSLINT" "$file" if [ $? -ne 0 ]; then exit 1 fi done
2.將pre-commit.sample文件名修改為pre-commit。
此時(shí)再打開項(xiàng)目運(yùn)行g(shù)it commit -m"xx"命令時(shí),tslint會(huì)做自動(dòng)的檢查,如果沒有錯(cuò)誤的話,才會(huì)提交成功。而存在tslint報(bào)錯(cuò)的話,會(huì)終止提交。
日常開發(fā)中,有時(shí)為了方便會(huì)直接使用git commit -am"xxx"(即add+commit)的指令。而pre-commit 只是多帶帶commit 鉤子,因此還需要在pre-applypatch這個(gè)鉤子下去做相同的配置。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/89229.html
摘要:實(shí)際開發(fā)中,如果每個(gè)包都去走一遍這些步驟,步驟好像確實(shí)有點(diǎn)多。 歡迎大家前往騰訊云+社區(qū),獲取更多騰訊海量技術(shù)實(shí)踐干貨哦~ 本文由小明plus發(fā)表 很多時(shí)候,我們可能想要用 typescript 語言來創(chuàng)建一些模塊,并提交到 npm 供別人使用, 那么在 2018 年,如果我想要初始化這樣的一個(gè)模塊,我需要做哪些步驟呢?: 答案是:創(chuàng)建一個(gè)優(yōu)雅的,對(duì)開發(fā)者友好的模塊,至少需要以下 15...
摘要:對(duì)于項(xiàng)目的編碼規(guī)范而言,主要有兩種選擇和。此外由于性能問題,官方?jīng)Q定全面采用,甚至把倉庫作為測試平臺(tái),而的解析器也成為獨(dú)立項(xiàng)目,專注解決雙方兼容性問題。最近在我的項(xiàng)目的編碼規(guī)范中全量的用代替了針對(duì)其中遇到的問題做一個(gè)記錄。 ??對(duì)于Typescript項(xiàng)目的編碼規(guī)范而言,主要有兩種選擇ESLint和TSLint。ESLint不僅能規(guī)范js代碼,通過配置解析器,也能規(guī)范TS代碼。此外由...
摘要:對(duì)于項(xiàng)目的編碼規(guī)范而言,主要有兩種選擇和。此外由于性能問題,官方?jīng)Q定全面采用,甚至把倉庫作為測試平臺(tái),而的解析器也成為獨(dú)立項(xiàng)目,專注解決雙方兼容性問題。最近在我的項(xiàng)目的編碼規(guī)范中全量的用代替了針對(duì)其中遇到的問題做一個(gè)記錄。 ??對(duì)于Typescript項(xiàng)目的編碼規(guī)范而言,主要有兩種選擇ESLint和TSLint。ESLint不僅能規(guī)范js代碼,通過配置解析器,也能規(guī)范TS代碼。此外由...
摘要:對(duì)于項(xiàng)目的編碼規(guī)范而言,主要有兩種選擇和。此外由于性能問題,官方?jīng)Q定全面采用,甚至把倉庫作為測試平臺(tái),而的解析器也成為獨(dú)立項(xiàng)目,專注解決雙方兼容性問題。最近在我的項(xiàng)目的編碼規(guī)范中全量的用代替了針對(duì)其中遇到的問題做一個(gè)記錄。 ??對(duì)于Typescript項(xiàng)目的編碼規(guī)范而言,主要有兩種選擇ESLint和TSLint。ESLint不僅能規(guī)范js代碼,通過配置解析器,也能規(guī)范TS代碼。此外由...
摘要:打造個(gè)人團(tuán)隊(duì)適用的開源項(xiàng)目規(guī)范是一個(gè)用來優(yōu)化托管在上的多代碼庫的工作流的一個(gè)管理工具可以讓你在主項(xiàng)目下管理多個(gè)子項(xiàng)目,從而解決了多個(gè)包互相依賴,且發(fā)布時(shí)需要手動(dòng)維護(hù)多個(gè)包的問題。 打造個(gè)人or團(tuán)隊(duì)適用的開源項(xiàng)目規(guī)范 lerna Lerna 是一個(gè)用來優(yōu)化托管在gitnpm上的多package代碼庫的工作流的一個(gè)管理工具,可以讓你在主項(xiàng)目下管理多個(gè)子項(xiàng)目,從而解決了多個(gè)包互相依賴,且發(fā)布...
閱讀 2571·2021-11-22 09:34
閱讀 932·2021-11-19 11:34
閱讀 2801·2021-10-14 09:42
閱讀 1472·2021-09-22 15:27
閱讀 2385·2021-09-07 09:59
閱讀 1731·2021-08-27 13:13
閱讀 3432·2019-08-30 11:21
閱讀 771·2019-08-29 18:35