簡單、快速、優(yōu)雅地配置 ESLint

ESLint

為什么要使用 ESLint

  • ESLint 可以統(tǒng)一 js 的開發(fā)規(guī)范與風(fēng)格,一個(gè)團(tuán)隊(duì)內(nèi)部的每個(gè)人的代碼風(fēng)格都不一樣,比如有的人還在用 es5,有的人用 es6+,當(dāng)查閱或修改別人代碼的時(shí)候會(huì)很難下手,效率不高,最后造成項(xiàng)目難維護(hù),ESLint 則會(huì)解決這個(gè)痛點(diǎn)
  • js 是松散類型的語言,沒有編譯的過程。只有運(yùn)行時(shí)才能找到問題,開發(fā)時(shí)很容易出錯(cuò),ESLint 可以在開發(fā)時(shí)就找出錯(cuò)誤與不符合規(guī)范的代碼
  • ESLint 有自己的一套規(guī)范,當(dāng)然,我們也可以自定義規(guī)則
  • 有很多組件都對 ESLint 支持,如 webpack,babel,還有一些 IDE,如 webstorm,vscode

安裝 ESLint 和相關(guān)插件

為了方便配置,我們選擇使用 airbnb 插件(airbnb號稱最嚴(yán)格的規(guī)范,且包括ES6+的代碼規(guī)范要求,可以滿足我們大部分的開發(fā)需求),安裝它需要先執(zhí)行下面的命令查看其依賴

$ npm info "eslint-config-airbnb-base@latest" peerDependencies

執(zhí)行命令得到結(jié)果 { eslint: '^4.19.1 || ^5.3.0', 'eslint-plugin-import': '^2.14.0' },我們可以看到它依賴 eslint: '^4.19.1 || ^5.3.0'eslint-plugin-import: '^2.14.0' 則在項(xiàng)目目錄下執(zhí)行命令

$ npm install --save-dev eslint-config-airbnb-base eslint@5.3.0 eslint-plugin-import@2.14.0

如果是 React 項(xiàng)目,請把上面命令中的 eslint-config-airbnb-base 替換成 eslint-config-airbnb 并安裝相關(guān)依賴

配置 eslintrc.js 文件

.eslintrc.js 是配置文件,通過它我們可以控制 Eslint 的執(zhí)行過程及結(jié)果,下面是作者在開發(fā)時(shí)配置的 eslintrc.js 代碼

module.exports = {
  extends: 'airbnb-base', // eslint-config-airbnb-base
  // 規(guī)則 在這里您可以配置規(guī)則,讓哪些規(guī)則進(jìn)行校驗(yàn),哪些不進(jìn)行校驗(yàn),哪些顯示錯(cuò)誤級別,哪些顯示警告級別等等
  rules: {
    // error
    'func-style': ['error', 'declaration', { allowArrowFunctions: true }],
    quotes: ['error', 'single', { allowTemplateLiterals: true }],
    // warn
    'import/first': 'warn', // import 放在文件頭
    'spaced-comment': 'warn', // 注釋要含有空格
    camelcase: 'warn', // 駝峰命名
    'max-len': ['warn', { code: 150 }],
    'operator-assignment': 'warn',
    'prefer-destructuring': 'warn',
    'prefer-template': 'warn',
    'eol-last': 'warn',
    'object-curly-spacing': 'warn',
    'no-return-assign': 'warn',
    // off
    'no-underscore-dangle': 'off',
    'object-curly-newline': 'off',
    'comma-dangle': 'off',
    'linebreak-style': 'off',
    'no-restricted-syntax': 'off',
    radix: 'off',
    'consistent-return': 'off',
    'no-plusplus': 'off',
    'import/prefer-default-export': 'off',
    'arrow-parens': 'off'
  }
};

以上代碼僅供參考,如要在實(shí)際生產(chǎn)中使用 ESLint,請根據(jù)項(xiàng)目需要自行配置

IDE 配置

作者在開發(fā)的時(shí)候使用 vscode 作為 IDE,所以只要安裝 ESLint 插件即可


vscode ESLint 插件

以上就是 ESLint 個(gè)人認(rèn)為比較完美的配置,本篇文章不是 ESLint 教學(xué),只是讓您不需要花任何學(xué)習(xí)的時(shí)間,即可方便快捷的實(shí)現(xiàn) ESLint 功能

簡書作者 小菜荔枝 轉(zhuǎn)載請聯(lián)系作者獲得授權(quán)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲(chǔ)服務(wù)。

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

  • ESLint 配置 ESlint 被設(shè)計(jì)為完全可配置的,這意味著你可以關(guān)閉每一個(gè)規(guī)則而只運(yùn)行基本語法驗(yàn)證,或混合和...
    靜默虛空閱讀 41,525評論 3 14
  • 兩個(gè)月之前在項(xiàng)目中就開始使用 Eslint ,當(dāng)時(shí)直接 copy 別人的 .eslintrc.js 文件,感覺好復(fù)...
    dkvirus閱讀 112,127評論 33 190
  • 先要知道 Lint 是什么,Eslint 又是什么; > - 因?yàn)橄胍奶啵ㄏ氚?Eslint 官方文檔里每個(gè)字...
    神秘者007閱讀 708評論 0 0
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,150評論 25 708
  • 你不懂,我想要的。 那么只好say good bye。
    伊韻寶貝閱讀 255評論 0 0