Eslint

官網javascript

配置

有兩種主要的方法來配置ESLint:
一、配置註釋 - 使用JavaScript註釋將配置信息直接嵌入到文件中。
二、配置文件 - 使用下面任一的文件來爲所有的目錄和它的子目錄指定配置信息。html

A、javascript:使用.eslintrc.js文件並導出一個包含配置的對象。 
B、YAML:.eslintrc.yaml或者.eslintrc. 
C、yml JSON:.eslintrc.json,而且此文件容許使用JS形式的註釋 
D、廢棄的用法:.eslintrc,此文件能夠是JSON或者YAML 
E、package.json:在package.json文件中建立eslintConfig屬性,全部的配置包含在此屬性中。 
這些文件的優先級則是按照以上出現的順序(.eslintrc.js > .eslintrc.yaml > .eslintrc.yml > .eslintrc.json > .eslintrc > package.json)。

 從最高優先級到最低優先級的完整配置層次以下: 
一、內聯配置vue

/*eslint-disable*/
 /*eslint-enable*/
/*global*/
/*eslint*/
/*eslint-env*/ 

二、命令行選項:java

--global
--rule
--env
-c, --config 

三、項目級配置:
.eslintrc.*或者將package.json文件放入與linted文件相同的目錄中繼續搜索.eslintrc,並package.json在祖先目錄中的文件(父具備最高的優先級,而後祖父母等),直至幷包括根目錄或直到一個配置"root": true中找到。 node

{
    "root": true
}

在沒有從(1)到(3)的任何配置的狀況下,回到我的的默認配置~/.eslintrc。 git

*文件或文件中的eslintConfig字段的形式package.json,ESLint將自動查找和讀取,也能夠在命令行上指定配置文件。若是您的主目錄中(一般~/)有配置文件,則ESLint 僅在ESLint找不到任何其餘配置文件時才使用它。
若是在同一個目錄中找到.eslintrc和package.json找到一個文件,.eslintrc將會優先考慮,而且package.json不會使用文件。 

初始化

若是你的項目尚未配置文件(.eslintrc)的話,能夠經過指定--init參數來生成一個新的配置文件:github

eslint --init

運行eslint --init後,會在當前目錄下生成一個.eslintrc文件,你能夠在這個文件中配置一些規則。npm

WebStorm

Preferences -> Languages & Frameworks -> JavaScript -> Code Quality Tools -> Eslint -> Enable (勾選) -> Apply -> OKjson

命令行

eslint -h

自動修復報錯

在package.json文件裏面的scripts裏面新增一條命令:瀏覽器

"lint-fix": "eslint --fix --ext .js --ext .jsx --ext .vue src/"
npm run lint-fix

使用共享的配置文件

ESLint支持將共享設置添加到配置文件中。咱們大多時候,我的或者團隊有好幾個項目,而每一個項目可能使用規則不一樣,或者須要配置不一樣的規則,若是都寫到一個配置或者每次都改配置文件,管理起來會很麻煩。
新建一個文件好比eslint-config-public.js,在文件內容添加一兩個規則。而後將原的.eslintrc.js文件改爲這樣:

extends: './eslint-config-public.js',

(extends)該屬性能夠是eslint命令,也能夠是繼承文件的路徑。
一、eslint:all: 表示引入當前版本eslint的全部核心規則。
二、eslint:recommended: 表示引入eslint的核心功能,而且報告一些常見的共同錯誤。 若是值爲絕對或相對路徑則至關於導入路徑對應的規則配置。

"extends": recommended,

忽略文件

在咱們的工程目錄中新建一個文件,命名爲「.eslintignore」,Eslint會自動識別這個文件。這個配置文件裏面,每一行都是一個glob模式語句,

node_modules/* 
**/vendor/*.j
除了.eslintignore文件中的任何模式以外,ESLint始終忽略/node_modules/ 和/bower_components/  

.eslintrc.js

module.exports = {
  root: true,
  parser: 'babel-eslint',
  parserOptions: {
    sourceType: 'module'
  },
  env: {
    browser: true,
  },
  // https://github.com/feross/standard/blob/master/RULES.md#javascript-standard-style
  extends: 'standard',
  // required to lint *.vue files
  plugins: [
    'html'
  ],
  // add your custom rules here
  'rules': {
    // allow paren-less arrow functions
    'arrow-parens': 0,
    // allow async-await
    'generator-star-spacing': 0,
    // allow debugger during development
    'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0
  }
}

解析器(parser):使用了babel-eslint。
環境配置(env):在瀏覽器中使用eslint。
繼承(extends):該配置文件繼承了standard規則。
規則(rules):規則。

規則錯誤等級

規則的錯誤等級有三種:

  • "off" 或者 0:關閉規則
  •  "warn" 或者 1:打開規則,而且做爲一個警告(不影響exit cod。
  •  "error" 或者 2:打開規則,而且做爲一個錯誤(exit code將會是1)
相關文章
相關標籤/搜索