2017-03-07 110 views
1

我有一個自定義規則包(eslint-config-common),然後使用.eslintrc文件覆蓋其中的一些。eslint無法正確地擴展規則

extends: common 
rules: 
    no-invalid-this: 0 # override a rule in common 

如果我直接運行它,因爲預期所有的工作:

./node_modules/.bin/eslint src/**/*.js 

但如果我運行它作爲一個.sh文件或通過像lint: eslint src/**/*.js的NPM腳本,它不拉擴展規則。它僅使用直接在.eslintrc中找到的規則運行。在我的情況下,這是非常糟糕的,因爲我的.eslintrc通常只是關掉或關閉我不想使用的規則。

我用DEBUG:eslint:*運行它,它找到並加載正確的擴展文件,它似乎並不適用規則。

我發現了一個類似的錯誤,他們好像說是固定的:https://github.com/eslint/eslint/issues/2754

這個錯誤似乎相似,所以我不知道如果我做錯了什麼,或者如果仍有錯誤。

我使用的是最新版本的eslint 3.17.1

+0

你可以嘗試使用'eslint --print-config如果any_js_file'並查看是否顯示從'common'規則? –

回答

0

的原來我使用的是水珠而沒有用引號加以包裝。似乎NPM咀嚼了一下,好像它只是下到了一個目錄一樣深。

取而代之的是:

"script": { 
    "lint": "eslint path/to/code/**/*.js" 
} 

使用此:

"script": { 
    "lint": "eslint 'path/to/code/**/*.js'" 
}