#
#
最近在使用 vue-cli ,安裝了eslint。之前還是好好的,就是這一次開始報錯了。報錯顯示:expected indentation of 0 spaces but found 0 spaces
1、剛開始查看了下,以爲是webstorm的代碼格式化與 eslint 的代碼規範不一致,但是查看了下:兩者是一樣的;所以不是這個原因,繼續排查。
2、繼續排查:我於是查看了eslint 的配置文件,我好奇爲啥之前的項目沒有報錯,現在的居然報錯。於是對比了之前項目的.exlintrc.js 和 現在項目的 .eslintrc.js 文件。發現果然這兩個文件,有變動。
注意:同時還要安裝npm eslint-html-plugin –save-dev插件
3、.eslintrc.js 詳細備註:
這是編寫eslint規則的文件
module.exports = {
// 默認情況下,ESLint會在所有父級組件中尋找配置文件,一直到根目錄。ESLint一旦發現配置文件中有 "root": true,它就會停止在父級目錄中尋找。
root: true,
// 對Babel解析器的包裝使其與 ESLint 兼容。
parser: 'babel-eslint',
parserOptions: {
// 代碼是 ECMAScript 模塊
sourceType: 'module'
},
env: {
// 預定義的全局變量,這裏是瀏覽器環境
browser: true,
},
// 擴展一個流行的風格指南,即 eslint-config-standard
// https://github.com/feross/standard/blob/master/RULES.md#javascript-standard-style
extends: 'standard',
// required to lint *.vue files
plugins: [
// 此插件用來識別.html 和 .vue文件中的js代碼
'html',
// standard風格的依賴包
"standard",
// standard風格的依賴包
"promise"
],
//配置的一些規則
'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
}
}
2018.07.18注意:以下是我嘗試的方法。
- 我排查的方式:
- 單獨修改.eslintrc.js的plugin規則,以及rules規則,都沒用。包括在eslintrc.js的rules添加的”indent”: [2, 4],//縮進風格,還是沒用。
- 修改webstrom的編程代碼的風格,還是沒用
- 修改.editorconfig文件的縮進配置,還是沒用
2018.07.18更新
最近,在使用eslint的時候,又報錯了。最終解決方案如下:
將package.json中的關於eslint的最新配置刪掉,換成之前的舊版本的eslint相關配置。同時在eslintrc.js中的rulus規則中添加’html’(不懂的見本文章前面)
將 "eslint": "^4.15.0",
"eslint-config-standard": "^10.2.1",
"eslint-friendly-formatter": "^3.0.0",
"eslint-loader": "^1.7.1",
"eslint-plugin-html": "^2.0.0",
"eslint-plugin-import": "^2.7.0",
"eslint-plugin-node": "^5.2.0",
"eslint-plugin-promise": "^3.4.0",
"eslint-plugin-standard": "^3.0.1",
"eslint-plugin-vue": "^4.0.0",
替換爲:
"eslint": "^3.19.0",
"eslint-friendly-formatter": "^2.0.7",
"eslint-loader": "^1.7.1",
"eslint-plugin-html": "^2.0.0",
"eslint-config-standard": "^6.2.1",
"eslint-plugin-promise": "^3.4.0",
"eslint-plugin-standard": "^2.0.1",