ESlint 被設計爲徹底可配置的,這意味着你能夠關閉每個規則而只運行基本語法驗證,或混合和匹配 ESLint 默認綁定的規則和你的自定義規則,以讓 ESLint 更適合你的項目。有兩種主要的方式來配置 ESLint:javascript
package.json
文件裏的 eslintConfig
字段指定配置,ESLint 會查找和自動讀取它們,再者,你能夠在命令行運行時指定一個任意的配置文件。有不少信息能夠配置:php
全部這些選項讓你能夠細粒度地控制 ESLint 如何對待你的代碼。css
ESLint 容許你指定你想要支持的 JavaScript 語言選項。默認狀況下,ESLint 支持 ECMAScript 5 語法。你能夠覆蓋該設置,以啓用對 ECMAScript 其它版本和 JSX 的支持。java
請注意,對 JSX 語法的支持不用於對 React 的支持。React 使用了一些特定的 ESLint 沒法識別的 JSX 語法。若是你正在使用 React 而且想要 React 語義支持,咱們推薦你使用 eslint-plugin-react。node
一樣的,支持 ES6 語法並不意味着同時支持新的 ES6 全局變量或類型(好比 Set
等新類型)。使用 { "parserOptions": { "ecmaVersion": 6 } }
來啓用 ES6 語法支持;要額外支持新的 ES6 全局變量,使用 { "env":{ "es6": true } }
(這個設置會同時自動啓用 ES6 語法支持)。react
解析器選項能夠在 .eslintrc.*
文件使用 parserOptions
屬性設置。可用的選項有:jquery
ecmaVersion
- 默認設置爲 5, 你可使用 三、五、六、7 或 8 來指定你想要使用的 ECMAScript 版本。你也能夠用使用年份命名的版本號指定爲 2015(同 6),2016(同 7),或 2017(同 8)sourceType
- 設置爲 "script"
(默認) 或 "module"
(若是你的代碼是 ECMAScript 模塊)。ecmaFeatures
- 這是個對象,表示你想使用的額外的語言特性:globalReturn
- 容許在全局做用域下使用 return
語句impliedStrict
- 啓用全局 strict mode (若是 ecmaVersion
是 5 或更高)jsx
- 啓用 JSXexperimentalObjectRestSpread
- 啓用實驗性的 object rest/spread properties 支持。(重要:這是一個實驗性的功能,在將來可能會有明顯改變。 建議你寫的規則 不要 依賴該功能,除非當它發生改變時你願意承擔維護成本。).eslintrc.json
文件示例:git
{
"parserOptions": { "ecmaVersion": 6, "sourceType": "module", "ecmaFeatures": { "jsx": true } }, "rules": { "semi": 2 } }
設置解析器選項能幫助 ESLint 肯定什麼是解析錯誤,全部語言選項默認都是 false
。es6
ESLint 默認使用Espree做爲其解析器,你能夠在配置文件中指定一個不一樣的解析器,只要該解析器符合下列要求:github
parse()
方法)注意,即便知足這些兼容性要求,也不能保證一個外部解析器能夠與 ESLint 正常配合工做,ESLint 也不會修復與其它解析器不兼容的相關 bug。
爲了代表使用該 npm 模塊做爲你的解析器,你須要在你的 .eslintrc
文件裏指定 parser
選項。例如,下面的配置指定了 Esprima 做爲解析器:
{
"parser": "esprima", "rules": { "semi": "error" } }
如下解析器與 ESLint 兼容:
注意,在使用自定義解析器時,爲了讓 ESLint 在處理非 ECMAScript 5 特性時正常工做,配置屬性 parserOptions
仍然是必須的。解析器會被傳入 parserOptions
,可是不必定會使用它們來決定功能特性的開關。
一個「環境」定義了一組預約義的全局變量。可用的環境包括:
browser
- 瀏覽器環境中的全局變量。node
- Node.js 全局變量和 Node.js 做用域。commonjs
- CommonJS 全局變量和 CommonJS 做用域 (通常用於 Browserify/WebPack 打包的只在瀏覽器中運行的代碼)。shared-node-browser
- Node 和 Browser 通用全局變量。es6
- 啓用除了 modules 之外的全部 ECMAScript 6 特性(該選項會自動設置 ecmaVersion
解析器選項爲 6)。worker
- Web Workers 全局變量。amd
- 將 require()
和 define()
定義爲像 amd 同樣的全局變量。mocha
- 添加全部的 Mocha 測試全局變量。jasmine
- 添加全部的 Jasmine 版本 1.3 和 2.0 的測試全局變量。jest
- Jest 全局變量。phantomjs
- PhantomJS 全局變量。protractor
- Protractor 全局變量。qunit
- QUnit 全局變量。jquery
- jQuery 全局變量。prototypejs
- Prototype.js 全局變量。shelljs
- ShellJS 全局變量。meteor
- Meteor 全局變量。mongo
- MongoDB 全局變量。applescript
- AppleScript 全局變量。nashorn
- Java 8 Nashorn 全局變量。serviceworker
- Service Worker 全局變量。atomtest
- Atom 測試全局變量。embertest
- Ember 測試全局變量。webextensions
- WebExtensions 全局變量。greasemonkey
- GreaseMonkey 全局變量。這些環境並非互斥的,因此你能夠同時定義多個。
能夠在源文件裏、在配置文件中或使用 命令行 的 --env
選項來指定環境。
要在你的 JavaScript 文件中使用註釋來指定環境,格式以下:
/* eslint-env node, mocha */
該設置啓用了 Node.js 和 Mocha 環境。
要在配置文件裏指定環境,使用 env
關鍵字指定你想啓用的環境,並設置它們爲 true
。例如,如下示例啓用了 browser 和 Node.js 的環境:
{
"env": { "browser": true, "node": true } }
或在 package.json
文件中:
{
"name": "mypackage", "version": "0.0.1", "eslintConfig": { "env": { "browser": true, "node": true } } }
在 YAML 文件中:
---
env:
browser: true node: true
若是你想在一個特定的插件中使用一種環境,確保提早在 plugins
數組裏指定了插件名,而後在 env 配置中不帶前綴的插件名後跟一個 /
,緊隨着環境名。例如:
{
"plugins": ["example"], "env": { "example/custom": true } }
或在 package.json
文件中
{
"name": "mypackage", "version": "0.0.1", "eslintConfig": { "plugins": ["example"], "env": { "example/custom": true } } }
在 YAML 文件中:
---
plugins:
- example
env:
example/custom: true
當訪問當前源文件內未定義的變量時,no-undef 規則將發出警告。若是你想在一個源文件裏使用全局變量,推薦你在 ESLint 中定義這些全局變量,這樣 ESLint 就不會發出警告了。你可使用註釋或在配置文件中定義全局變量。
要在你的 JavaScript 文件中,用註釋指定全局變量,格式以下:
/* global var1, var2 */
這裏定義了兩個全局變量:var1
和 var2
。若是你想指定這些變量不該被重寫(只讀),你能夠將它們設置爲 false
:
/* global var1:false, var2:false */
在配置文件裏配置全局變量時,使用 globals
指出你要使用的全局變量。將變量設置爲 true
將容許變量被重寫,或 false
將不容許被重寫。好比:
{
"globals": { "var1": true, "var2": false } }
在 YAML 中:
---
globals:
var1: true var2: false
在這些例子中 var1
容許被重寫,var2
不容許被重寫。
注意: 要啓用no-global-assign規則來禁止對只讀的全局變量進行修改。
ESLint 支持使用第三方插件。在使用插件以前,你必須使用 npm 安裝它。
在配置文件裏配置插件時,可使用 plugins
關鍵字來存放插件名字的列表。插件名稱能夠省略 eslint-plugin-
前綴。
{
"plugins": [ "plugin1", "eslint-plugin-plugin2" ] }
在 YAML 中:
--- plugins: - plugin1 - eslint-plugin-plugin2
注意:全局安裝的 ESLint 只能使用全局安裝的插件。本地安裝的 ESLint 不只可使用本地安裝的插件,也可使用全局安裝的插件。
ESLint 附帶有大量的規則。你可使用註釋或配置文件修改你項目中要使用的規則。要改變一個規則設置,你必須將規則 ID 設置爲下列值之一:
"off"
或 0
- 關閉規則"warn"
或 1
- 開啓規則,使用警告級別的錯誤:warn
(不會致使程序退出)"error"
或 2
- 開啓規則,使用錯誤級別的錯誤:error
(當被觸發的時候,程序會退出)爲了在文件註釋裏配置規則,使用如下格式的註釋:
/* eslint eqeqeq: "off", curly: "error" */
在這個例子裏,eqeqeq
規則被關閉,curly
規則被打開,定義爲錯誤級別。你也可使用對應的數字定義規則嚴重程度:
/* eslint eqeqeq: 0, curly: 2 */
這個例子和上個例子是同樣的,只不過它是用的數字而不是字符串。eqeqeq
規則是關閉的,curly
規則被設置爲錯誤級別。
若是一個規則有額外的選項,你可使用數組字面量指定它們,好比:
/* eslint quotes: ["error", "double"], curly: 2 */
這條註釋爲規則 quotes
指定了 「double」選項。數組的第一項老是規則的嚴重程度(數字或字符串)。
還可使用 rules
連同錯誤級別和任何你想使用的選項,在配置文件中進行規則配置。例如:
{
"rules": { "eqeqeq": "off", "curly": "error", "quotes": ["error", "double"] } }
在 YAML 中:
---
rules:
eqeqeq: off
curly: error
quotes:
- error
- double
配置定義在插件中的一個規則的時候,你必須使用 插件名/規則ID
的形式。好比:
{
"plugins": [ "plugin1" ], "rules": { "eqeqeq": "off", "curly": "error", "quotes": ["error", "double"], "plugin1/rule1": "error" } }
在 YAML 中:
---
plugins:
- plugin1
rules:
eqeqeq: 0
curly: error
quotes:
- error
- "double" plugin1/rule1: error
在這些配置文件中,規則 plugin1/rule1
表示來自插件 plugin1
的 rule1
規則。你也可使用這種格式的註釋配置,好比:
/* eslint "plugin1/rule1": "error" */
注意:當指定來自插件的規則時,確保刪除 eslint-plugin-
前綴。ESLint 在內部只使用沒有前綴的名稱去定位規則。
能夠在你的文件中使用如下格式的塊註釋來臨時禁止規則出現警告:
/* eslint-disable */ alert('foo'); /* eslint-enable */
你也能夠對指定的規則啓用或禁用警告:
/* eslint-disable no-alert, no-console */ alert('foo'); console.log('bar'); /* eslint-enable no-alert, no-console */
若是在整個文件範圍內禁止規則出現警告,將 /* eslint-disable */
塊註釋放在文件頂部:
/* eslint-disable */ alert('foo');
你也能夠對整個文件啓用或禁用警告:
/* eslint-disable no-alert */ // Disables no-alert for the rest of the file alert('foo');
能夠在你的文件中使用如下格式的行註釋在某一特定的行上禁用全部規則:
alert('foo'); // eslint-disable-line // eslint-disable-next-line alert('foo');
在某一特定的行上禁用某個指定的規則:
alert('foo'); // eslint-disable-line no-alert // eslint-disable-next-line no-alert alert('foo');
在某個特定的行上禁用多個規則:
alert('foo'); // eslint-disable-line no-alert, quotes, semi // eslint-disable-next-line no-alert, quotes, semi alert('foo');
上面的全部方法一樣適用於插件規則。例如,禁止 eslint-plugin-example
的 rule-name
規則,把插件名(example
)和規則名(rule-name
)結合爲 example/rule-name
:
foo(); // eslint-disable-line example/rule-name
注意:爲文件的某部分禁用警告的註釋,告訴 ESLint 不要對禁用的代碼報告規則的衝突。ESLint 仍解析整個文件,然而,禁用的代碼仍須要是有效的 JavaScript 語法。
ESLint 支持在配置文件添加共享設置。你能夠添加 settings
對象到配置文件,它將提供給每個將被執行的規則。若是你想添加的自定義規則並且使它們能夠訪問到相同的信息,這將會頗有用,而且很容易配置。
在 JSON 中:
{
"settings": { "sharedData": "Hello" } }
在 YAML 中:
---
settings:
sharedData: "Hello"
有兩種方式可使用配置文件。第一種是將文件保存到你喜歡的地方,而後將它的位置使用 -c
選項傳遞命令行,好比:
eslint -c myconfig.json myfiletotest.js
第二種方式是經過 .eslintrc.*
和 package.json
。ESLint 將自動在要檢測的文件目錄裏尋找它們,緊接着是父級目錄,一直到文件系統的根目錄。當你想對一個項目的不一樣部分的使用不一樣配置,或當你但願別人可以直接使用 ESLint,而無需記住要在配置文件中傳遞什麼,這種方式就頗有用。
每種狀況,配置文件都會覆蓋默認設置。
ESLint 支持幾種格式的配置文件:
.eslintrc.js
而後輸出一個配置對象。.eslintrc.yaml
或 .eslintrc.yml
去定義配置的結構。.eslintrc.json
去定義配置的結構,ESLint 的 JSON 文件容許 JavaScript 風格的註釋。.eslintrc
,可使 JSON 也能夠是 YAML。package.json
裏建立一個 eslintConfig
屬性,在那裏定義你的配置。若是同一個目錄下有多個配置文件,ESLint 只會使用一個。優先級順序以下:
.eslintrc.js
.eslintrc.yaml
.eslintrc.yml
.eslintrc.json
.eslintrc
package.json
當使用 .eslintrc.*
和 package.json
文件的配置時,你能夠利用層疊配置。例如,假如你有如下結構:
your-project ├── .eslintrc ├── lib │ └── source.js └─┬ tests ├── .eslintrc └── test.js
層疊配置使用離要檢測的文件最近的 .eslintrc
文件做爲最高優先級,而後纔是父目錄裏的配置文件,等等。當你在這個項目中容許 ESLint 時,lib/
下面的全部文件將使用項目根目錄裏的 .eslintrc
文件做爲它的配置文件。當 ESLint 遍歷到 test/
目錄,your-project/.eslintrc
以外,它還會用到 your-project/tests/.eslintrc
。因此 your-project/tests/test.js
是基於它的目錄層次結構中的兩個.eslintrc
文件的組合,而且離的最近的一個優先。經過這種方式,你能夠有項目級 ESLint 設置,也有覆蓋特定目錄的 ESLint 設置。
一樣的,若是在根目錄的 package.json
文件中有一個 eslintConfig
字段,其中的配置將使用於全部子目錄,可是當 tests
目錄下的 .eslintrc
文件中的規則與之發生衝突時,就會覆蓋它。
your-project ├── package.json ├── lib │ └── source.js └─┬ tests ├── .eslintrc └── test.js
若是同一目錄下 .eslintrc
和 package.json
同時存在,.eslintrc
優先級高會被使用,package.json
文件將不會被使用。
注意:若是在你的主目錄下有一個自定義的配置文件 (~/.eslintrc
) ,若是沒有其它配置文件時它纔會被使用。由於我的配置將適用於用戶目錄下的全部目錄和文件,包括第三方的代碼,當 ESLint 運行時可能會致使問題。
默認狀況下,ESLint 會在全部父級目錄裏尋找配置文件,一直到根目錄。若是你想要你全部項目都遵循一個特定的約定時,這將會頗有用,但有時候會致使意想不到的結果。爲了將 ESLint 限制到一個特定的項目,在你項目根目錄下的 package.json
文件或者 .eslintrc.*
文件裏的 eslintConfig
字段下設置 "root": true
。ESLint 一旦發現配置文件中有 "root": true
,它就會中止在父級目錄中尋找。
{
"root": true }
在 YAML 中:
---
root: true
例如,projectA
的 lib/
目錄下的 .eslintrc
文件中設置了 "root": true
。這種狀況下,當檢測 main.js
時,lib/
下的配置將會被使用,projectA/
下的 .eslintrc
將不會被使用。
home
└── user
├── .eslintrc <- Always skipped if other configs present └── projectA ├── .eslintrc <- Not used └── lib ├── .eslintrc <- { "root": true } └── main.js
完整的配置層次結構,從最高優先級最低的優先級,以下:
/*eslint-disable*/
和 /*eslint-enable*/
/*global*/
/*eslint*/
/*eslint-env*/
--global
--rule
--env
-c
、--config
.eslintrc.*
或 package.json
文件.eslintrc
或 package.json
文件,直到根目錄(包括根目錄)或直到發現一個有"root": true
的配置。~/.eslintrc
中自定義的默認配置。一個配置文件能夠被基礎配置中的已啓用的規則繼承。
extends
屬性值能夠是:
ESLint 遞歸地進行擴展配置,因此一個基礎的配置也能夠有一個 extends
屬性。
rules
屬性能夠作下面的任何事情以擴展(或覆蓋)規則:
"eqeqeq": ["error", "allow-null"]
"eqeqeq": "warn"
"eqeqeq": ["warn", "allow-null"]
"quotes": ["error", "single", "avoid-escape"]
"quotes": ["error", "single"]
"quotes": ["error", "single"]
值爲 "eslint:recommended"
的 extends
屬性啓用一系列核心規則,這些規則報告一些常見問題,在 規則頁面 中被標記爲 。這個推薦的子集只能在 ESLint 主要版本進行更新。
若是你的配置集成了推薦的規則:在你升級到 ESLint 新的主版本以後,在你使用命令行的 --fix
選項以前,檢查一下報告的問題,這樣你就知道一個新的可修復的推薦的規則將更改代碼。
eslint --init
命令能夠建立一個配置,這樣你就能夠繼承推薦的規則。
JavaScript 格式的一個配置文件的例子:
module.exports = { "extends": "eslint:recommended", "rules": { // enable additional rules "indent": ["error", 4], "linebreak-style": ["error", "unix"], "quotes": ["error", "double"], "semi": ["error", "always"], // override default options for rules from base configurations "comma-dangle": ["error", "always"], "no-cond-assign": ["error", "always"], // disable rules from base configurations "no-console": "off", } }
可共享的配置 是一個 npm 包,它輸出一個配置對象。要確保這個包安裝在 ESLint 能請求到的目錄下。
extends
屬性值能夠省略包名的前綴 eslint-config-
。
eslint --init
命令能夠建立一個配置,這樣你就能夠擴展一個流行的風格指南(好比,eslint-config-standard
)。
YAML 格式的一個配置文件的例子:
extends: standard
rules:
comma-dangle:
- error
- always
no-empty: warn
插件 是一個 npm 包,一般輸出規則。一些插件也能夠輸出一個或多個命名的 配置。要確保這個包安裝在 ESLint 能請求到的目錄下。
plugins
屬性值 能夠省略包名的前綴 eslint-plugin-
。
extends
屬性值能夠由如下組成:
plugin:
react
)/
recommended
)JSON 格式的一個配置文件的例子:
{
"plugins": [ "react" ], "extends": [ "eslint:recommended", "plugin:react/recommended" ], "rules": { "no-set-state": "off" } }
extends
屬性值能夠是基本配置文件的絕對路徑或相對路徑。
ESLint 解析基本配置文件的相對路徑相對你你使用的配置文件,除非那個文件在你的主目錄或非 ESLint 安裝目錄的父級目錄。在這些狀況下,ESLint 解析基本配合文件的相對路徑相對於被檢測的 項目目錄(尤爲是當前工做目錄)。
JSON 格式的一個配置文件的例子:
{
"extends": [ "./node_modules/coding-standard/eslintDefaults.js", "./node_modules/coding-standard/.eslintrc-es6", "./node_modules/coding-standard/.eslintrc-jsx" ], "rules": { "eqeqeq": "warn" } }
extends
屬性值能夠是 "eslint:all"
,啓用當前安裝的 ESLint 中全部的核心規則。這些規則能夠在 ESLint 的任何版本進行更改。
重要:這些配置 不推薦在產品中使用,由於它隨着 ESLint 版本進行更改。使用的話,請本身承擔風險。
若是你配置 ESLint 升級時自動地啓用新規則,當源碼沒有任何改變時,ESLint 能夠報告新問題,所以任何 ESLint 的新的小版本好像有破壞性的更改。
當你決定在一個項目上使用的規則和選項,尤爲是若是你不多覆蓋選項或禁用規則,你可能啓用全部核心規則做爲一種快捷方式使用。規則的默認選項並非 ESLint 推薦的(例如,quotes
規則的默認選項並不意味着雙引號要比單引號好)。
若是你的配置擴展了全部的核心規則:在你升級到一個新的大或小的 ESLint 版本,在你使用命令行的 --fix
選項以前,檢查一下報告的問題,這樣你就知道一個新的可修復的規則將更改代碼。
JavaScript 格式的一個配置文件的例子:
module.exports = { "extends": "eslint:all", "rules": { // override default options "comma-dangle": ["error", "always"], "indent": ["error", 2], "no-cond-assign": ["error", "always"], // disable now, but enable in the future "one-var": "off", // ["error", "never"] // disable "init-declarations": "off", "no-console": "off", "no-inline-comments": "off", } }
有時,你可能須要更精細的配置,好比,若是同一個目錄下的文件須要有不一樣的配置。所以,你能夠在配置中使用 overrides
鍵,它只適用於匹配特定的 glob 模式的文件,使用你在命令行上傳遞的格式 (e.g., app/**/*.test.js
)。
.eslintrc.*
或 package.json
) 中進行配置。/Users/john/workspace/any-project/.eslintrc.js
而你要檢測的路徑爲 /Users/john/workspace/any-project/lib/util.js
,那麼你在 .eslintrc.js
中提供的模式是相對於 lib/util.js
來執行的.extends
、overrides
和 root
以外的其餘任何有效配置選項,project-root ├── app │ ├── lib │ │ ├── foo.js │ │ ├── fooSpec.js │ ├── components │ │ ├── bar.js │ │ ├── barSpec.js │ ├── .eslintrc.json ├── server │ ├── server.js │ ├── serverSpec.js ├── .eslintrc.json
app/.eslintrc.json
文件中的配置定義了 glob 模式 **/*Spec.js
。該模式是相對 app/.eslintrc.json
的基本目錄的。所以,該模式將匹配 app/lib/fooSpec.js
和 app/components/barSpec.js
但 不匹配 server/serverSpec.js
。若是你在項目根目錄下的 .eslintrc.json
文件中定義了一樣的模式,它將匹配這三個 *Spec
文件。
在你的 .eslintrc.json
文件中:
{
"rules": { "quotes": [ 2, "double" ] }, "overrides": [ { "files": [ "bin/*.js", "lib/*.js" ], "excludedFiles": "*.test.js", "rules": { "quotes": [ 2, "single" ] } } ] }
JSON 和 YAML 配置文件格式都支持註釋 ( package.json
文件不該該包括註釋)。你能夠在其餘類型的文件中使用 JavaScript 風格的註釋或使用 YAML 風格的註釋,ESLint 會忽略它們。這容許你的配置更加人性化。例如:
{
"env": { "browser": true }, "rules": { // Override our default settings just for this directory "eqeqeq": "warn", "strict": "off" } }
目前,告訴 ESLint 哪一個文件擴展名要檢測的惟一方法是使用 --ext
命令行選項指定一個逗號分隔的擴展名列表。注意,該標記只在與目錄一塊兒使用時有效,若是使用文件名或 glob 模式,它將會被忽略。
你能夠經過在項目根目錄建立一個 .eslintignore
文件告訴 ESLint 去忽略特定的文件和目錄。.eslintignore
文件是一個純文本文件,其中的每一行都是一個 glob 模式代表哪些路徑應該忽略檢測。例如,如下將忽略全部的 JavaScript 文件:
**/*.js
當 ESLint 運行時,在肯定哪些文件要檢測以前,它會在當前工做目錄中查找一個 .eslintignore
文件。若是發現了這個文件,當遍歷目錄時,將會應用這些偏好設置。一次只有一個 .eslintignore
文件會被使用,因此,不是當前工做目錄下的 .eslintignore
文件將不會被用到。
Globs 匹配使用 node-ignore,因此大量可用的特性有:
#
開頭的行被看成註釋,不影響忽略模式。.eslintignore
的位置或當前工做目錄。這也會影響經過 --ignore-pattern
傳遞的路徑。.gitignore
規範!
開頭的行是否認模式,它將會從新包含一個以前被忽略的模式。除了 .eslintignore
文件中的模式,ESLint老是忽略 /node_modules/*
和 /bower_components/*
中的文件。
例如:把下面 .eslintignore
文件放到當前工做目錄裏,將忽略 node_modules
,bower_components
以及 build/
目錄下除了 build/index.js
的全部文件。
# /node_modules/* and /bower_components/* ignored by default # Ignore built files except build/index.js build/* !build/index.js
若是相比於當前工做目錄下 .eslintignore
文件,你更想使用一個不一樣的文件,你能夠在命令行使用 --ignore-path
選項指定它。例如,你可使用 .jshintignore
文件,由於它有相同的格式:
eslint --ignore-path .jshintignore file.js
你也可使用你的 .gitignore
文件:
eslint --ignore-path .gitignore file.js
任何文件只要知足標準忽略文件格式均可以用。記住,指定 --ignore-path
意味着任何現有的 .eslintignore
文件將不被使用。請注意,.eslintignore
中的匹配規則比 .gitignore
中的更嚴格。
{
"name": "mypackage", "version": "0.0.1", "eslintConfig": { "env": { "browser": true, "node": true } }, "eslintIgnore": ["hello.js", "world.js"] }
當您將目錄傳遞給 ESLint 時,文件和目錄將被忽略。若是將特定文件傳遞給ESLint,則會看到一條警告,指示該文件已被跳過。例如,假設你有一個 .eslintignore
文件,以下所示:
foo.js
而後,您執行:
eslint foo.js
您將會看到如下告警:
foo.js 0:0 warning File ignored because of your .eslintignore file. Use --no-ignore to override. ✖ 1 problem (0 errors, 1 warning)
發生此消息是由於ESLint不肯定是否要檢查該文件。如消息所示,您可使用 --no-ignore
省略使用忽略規則。