使用eslint來規(guī)范你的項目源碼

在vscode上開發(fā)個人項目的時候,代碼風格隨你定蒸痹,弄出花也沒人說,可是一旦是團隊項目匿沛,那就得注意代碼風格了榛鼎。舉個常見例子來說逃呼,A修改了代碼,并格式化成2個縮進苏揣,B也同時同一份代碼,但格式化成4個縮進平匈,這時候代碼提交的時候就會存在沖突藏古,需要花費大量的時間在格式上。


那么解決方案有三步

  1. 使用Settings Sync拓展同步用戶設置
  2. 使用eslint統(tǒng)一代碼風格
  3. 使用git預檢查工具在提交前檢驗

使用Settings Sync拓展

在之間的文章說過

不可否者vscode是一款好用的IDE拧晕,可是仍存在著一些小缺陷,為了方便在不同設備上使用統(tǒng)一的用戶配置(團隊協(xié)作時特別有用孟辑,確保代碼風格統(tǒng)一)蔫敲,這里推薦一款vscode 插件 Settings Sync饲嗽。

在項目開始的時候奈嘿,我們要求團隊成功的用戶配置是一樣的,這樣可以確保代碼風格一致尽狠。相關(guān)教程請移步 使用Settings Sync同步你的vscode配置

使用Eslint

使用腳手架創(chuàng)建vue項目的時候會提示是否使用eslint袄膏,如果選用了而代碼風格不符合規(guī)范掺冠,將在控制臺中輸出警告,此時代碼仍然可以運行德崭。

如果不是沒有選用eslint或者不是vue項目,我們可以在ide中按照eslint拓展來幫助我們定位錯誤代碼眉厨。

搜索并按照ESLint拓展

其他非vscode用戶也可以安裝相關(guān)的ide拓展
安裝完成后將直接在代碼上顯示提示信息。

eslint有兩個重要的配置文件鹿蜀,需要在項目根目錄創(chuàng)建

1   .eslintignore
2   .eslintrc.js

.eslintignore eslint需要過濾檢查的資源
.eslintrc.js eslint 檢查規(guī)則
下面是簡單的配置

# .eslintignore
node_modules/ # 忽略node_modules文件夾
/dist/        # 忽略檢查dist文件夾
// .eslintrc.js
module.exports = {
  root: true,
  parserOptions: {
    parser: 'babel-eslint'
  },
  env: {
    browser: true,
  },
  extends: [
    // https://github.com/vuejs/eslint-plugin-vue#priority-a-essential-error-prevention
    // consider switching to `plugin:vue/strongly-recommended` or `plugin:vue/recommended` for stricter rules.
    'plugin:vue/essential', 
    // https://github.com/standard/standard/blob/master/docs/RULES-en.md
    'standard'
  ],
  // required to lint *.vue files
  plugins: [
    'vue'
  ],
  // add your custom rules here
  rules: {
    // allow async-await
    'generator-star-spacing': 'off',
    // allow debugger during development
    'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off'
  }
}

其中我們需要注意的是.eslintrc.js文件下的rules配置,比如希望關(guān)閉eslint的console檢測销钝,我們再rules中添加一條規(guī)則

'no-console': 0

具體規(guī)則可以看官網(wǎng)或提示琐簇,配置屬性為0off可以關(guān)閉指定檢查蒸健。

當然婉商,處理代碼檢查,eslint還支持代碼修復丈秩,簡單的代碼風格eslint可以直接修復,比如我們希望eslint修復src文件夾下的js文件饺著,那么在package.json中添加一條自定義命令

# 安裝eslint模塊
$ npm install eslint --save-dev
# 添加eslint修復命令
"lint-fix": "eslint --fix --ext .js src/"

執(zhí)行 npm run lint-fix 將自動修復肠牲。無法修復的將在控制臺給出提示幼衰。

使用git預檢查工具

原則上每次git commit前我們都需要先執(zhí)行一下 lint-fix命令的缀雳,避免遺忘或者偷懶,我們使用預檢查工具進行處理识椰。
husky 是一個npm模塊,可以在git提交前做攔截腹鹉,如果攔截返回異常信息,將取消提交功咒。

安裝husky

$ npm install husky --save-dev

添加攔截事件precommit

# package.json
"precommit": "npm run lint-fix"

在提交前自動執(zhí)行eslint修復命令竞膳,如果成功全部修復就可以正常提交诫硕,如果沒有全部修復坦辟,將取消提交章办,避免無法團隊代碼滨彻。

愉快的提交代碼

這樣就確保了開發(fā)者本地的代碼格式化是統(tǒng)一的挪蹭,而且提交到線上的代碼也是嚴格要求的。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末梁厉,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子八秃,更是在濱河造成了極大的恐慌,老刑警劉巖昔驱,帶你破解...
    沈念sama閱讀 221,430評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件上忍,死亡現(xiàn)場離奇詭異,居然都是意外死亡窍蓝,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,406評論 3 398
  • 文/潘曉璐 我一進店門秕豫,熙熙樓的掌柜王于貴愁眉苦臉地迎上來观蓄,“玉大人混移,你說我怎么就攤上這事侮穿。” “怎么了亲茅?”我有些...
    開封第一講書人閱讀 167,834評論 0 360
  • 文/不壞的土叔 我叫張陵克锣,是天一觀的道長茵肃。 經(jīng)常有香客問我袭祟,道長,這世上最難降的妖魔是什么巾乳? 我笑而不...
    開封第一講書人閱讀 59,543評論 1 296
  • 正文 為了忘掉前任鸟召,我火速辦了婚禮氨鹏,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘仆抵。我一直安慰自己,他們只是感情好还栓,可當我...
    茶點故事閱讀 68,547評論 6 397
  • 文/花漫 我一把揭開白布传轰。 她就那樣靜靜地躺著剩盒,像睡著了一般慨蛙。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上期贫,一...
    開封第一講書人閱讀 52,196評論 1 308
  • 那天,我揣著相機與錄音玛臂,去河邊找鬼封孙。 笑死迹冤,一個胖子當著我的面吹牛虎忌,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播膜蠢,決...
    沈念sama閱讀 40,776評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼礁竞!你這毒婦竟也來了杉辙?” 一聲冷哼從身側(cè)響起模捂,我...
    開封第一講書人閱讀 39,671評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎泉孩,沒想到半個月后并淋,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,221評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡县耽,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,303評論 3 340
  • 正文 我和宋清朗相戀三年镣典,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片兄春。...
    茶點故事閱讀 40,444評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡赶舆,死狀恐怖哑姚,靈堂內(nèi)的尸體忽然破棺而出芜茵,到底是詐尸還是另有隱情,我是刑警寧澤九串,帶...
    沈念sama閱讀 36,134評論 5 350
  • 正文 年R本政府宣布,位于F島的核電站猪钮,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏谆奥。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,810評論 3 333
  • 文/蒙蒙 一酸些、第九天 我趴在偏房一處隱蔽的房頂上張望檐蚜。 院中可真熱鬧魄懂,春花似錦闯第、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,285評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽篡腌。三九已至褐荷,卻和暖如春嘹悼,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背杨伙。 一陣腳步聲響...
    開封第一講書人閱讀 33,399評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留限匣,地道東北人。 一個月前我還...
    沈念sama閱讀 48,837評論 3 376
  • 正文 我出身青樓锌历,卻偏偏與公主長得像哲身,于是被迫代替她去往敵國和親辩涝。 傳聞我的和親對象是個殘疾皇子勘天,可洞房花燭夜當晚...
    茶點故事閱讀 45,455評論 2 359