vue3.0以后eslint對代碼格式化經常報錯, 直接在項目中的.eslintrc.js中修改如下:


/** * Eslint 檢查規則(A) * "off" 或者 0 -- 關閉規則 * "warn" 或者 1 -- 將規則打開為警告(不影響退出代碼) * "error" 或者 2 -- 將規則打開為錯誤(觸發時退出代碼為 1) */ module.exports = { root: true,//禁用持續查找(root) parserOptions: { parser: 'babel-eslint',//解析器(parser) sourceType: 'module'//指定源代碼存在的位置,script | module,默認為script }, env: { browser: true,//啟用瀏覽器全局變量。 node: true,//Node.js全局變量和Node.js范圍。 es6: true,// 啟用ES6的功能。 }, // eslint:recommended:表示引入eslint的核心功能,並且報告一些常見的共同錯誤。 extends: ['plugin:vue/recommended', 'eslint:recommended'], rules: { // 設置每行最大屬性數 'vue/max-attributes-per-line': [2, { 'singleline': 10, // 標簽為單行時,每行最大屬性數值為 10,默認值為 1 'multiline': { 'max': 1, // 標簽為多行時,每行最大屬性數字為 1,默認值為 1 'allowFirstLine': false // 不允許屬性與該標記名稱位於同一行,默認值為 false } }], // 禁用單行標簽內容需換行的校驗 'vue/singleline-html-element-content-newline': 'off', // 禁用多行標簽內容需換行的校驗 'vue/multiline-html-element-content-newline':'off', // 組件 name 屬性值必須使用帕斯卡命名法(單詞首字母大寫) 'vue/name-property-casing': ['error', 'PascalCase'], // 禁用禁止使用 v-html 的校驗 'vue/no-v-html': 'off', // 對象必須使用 getter / setter 對,即:每個已定義 setter 的屬性都需有一個 getter 'accessor-pairs': 2, // 箭頭函數 => 前后必須有空格 'arrow-spacing': [2, { 'before': true, 'after': true }], // 單行代碼塊花括號打開塊之后和關閉塊之前,至少一個空格 'block-spacing': [2, 'always'], // 強制執行標准大括號風格樣式(關鍵字要與花括號保持在同一行) 'brace-style': [2, '1tbs', { 'allowSingleLine': true // 允許同一行上打開和關閉括號 }], // 關閉駝峰命名規則校驗(變量命名時,名稱之間不允許下划線,常量(全部大寫)除外) 'camelcase': [0, { 'properties': 'always' // 屬性名稱強制執行駝峰命名法樣式 }], // 在對象或數組中不允許尾隨逗號 'comma-dangle': [2, 'never'], // 變量聲明,數組文字,對象文字,函數參數和序列中的逗號前后加上一致的間距 'comma-spacing': [2, { 'before': false, // 在逗號前不允許有空格 'after': true // 在逗號后需要一個或多個空格 }], // 使用標准逗號樣式,逗號位於當前行的末尾。在數組元素,對象屬性或變量聲明在同一行之后和同一行需要逗號 'comma-style': [2, 'last'], // 子類構造函數必須使用 super()調用父類構造函數。非子類的構造函數不得調用 'constructor-super': 2, // 當一個塊只包含一條語句時,if,else if,else,for,while,或 do 允許省略花括號 'curly': [2, 'multi-line'], // 表達式中點"."要求與屬性位於同一行 'dot-location': [2, 'property'], // 強制文件以換行符結束(文件以一空行結束) 'eol-last': 2, // 強制使用 === 和 !== 但不將此規則應用於 null 'eqeqeq': ['error', 'always', {'null': 'ignore'}], // 使用生成器時關鍵字 * 前后均須有空格 'generator-star-spacing': [2, { 'before': true, 'after': true }], // 回調模式需處理 err 或 error,報告所有未處理的錯誤 'handle-callback-err': [2, '^(err|error)$'], // 使用兩個空格進行縮進, 'indent': [2, 2, { 'SwitchCase': 1 // case 針對 switch 語句使用 2 個空格縮進 }], // 在 JSX 屬性中強制使用單引號 'jsx-quotes': [2, 'prefer-single'], // 對象字面量屬性中強制在冒號后放置空格,冒號前不允許空格 'key-spacing': [2, { 'beforeColon': false, // 不允許在對象文字中的鍵和冒號之間使用空格 'afterColon': true // 需要在冒號和對象文字中的值之間至少有一個空格 }], // 關鍵字前后至少有一個空格 'keyword-spacing': [2, { 'before': true, 'after': true }], // 構造函數名需以大寫字母開頭,以下內置標識符可免除此規則:Array、Boolean、 Date、Error、Function、Number、Object、RegExp、String、Symbol 'new-cap': [2, { 'newIsCap': true, // new 方式調用的函數需以大寫開頭 'capIsNew': false // 允許直接調用大寫開頭的函數,無需使用 new }], // 使用 new 關鍵字調用無參構造函數,函數名后強制使用括號 'new-parens': 2, // 禁止使用數組構造函數, 'no-array-constructor': 2, // 禁止使用 arguments.caller 和 arguments.callee 'no-caller': 2, // 關閉 console 檢驗規則 'no-console': 'off', // 禁止給類賦值 'no-class-assign': 2, // 禁止在條件語句中使用賦值運算符 'no-cond-assign': 2, // 禁止修改 const 關鍵字聲明的變量 'no-const-assign': 2, // 關閉正則表達式中的控制字符校驗規則 'no-control-regex': 0, // 不允許對變量使用 delete 操作符 'no-delete-var': 2, // 不允許在函數聲明或表達式中使用重復的參數名稱 'no-dupe-args': 2, // 不允許在類的聲明中出現重復名稱 'no-dupe-class-members': 2, // 不允許在對象中使用重復鍵 'no-dupe-keys': 2, // 不允許在 switch 語句的 case 子句中使用重復的 case 分支 'no-duplicate-case': 2, // 不允許在正則表達式中使用空字符 'no-empty-character-class': 2, // 對象和數組使用解構時,不允許空模式 'no-empty-pattern': 2, // 禁止使用 eval()函數 'no-eval': 2, // 禁止給 catch 語句中的異常參數賦值 'no-ex-assign': 2, // 不允許直接修改內置原生對象 'no-extend-native': 2, // 避免不必要的函數綁定 bind() 'no-extra-bind': 2, // 禁止不必要的布爾轉換 'no-extra-boolean-cast': 2, // 在使用函數表達式時,禁止使用不必要的括號 'no-extra-parens': [2, 'functions'], // 禁止 switch 穿透,需使用 break 中斷 'no-fallthrough': 2, // 禁止省略浮點數中的 0 'no-floating-decimal': 2, // 不允許重新分配 function 聲明 'no-func-assign': 2, // 禁止使用隱式 eval(),即:始終使用函數作為 setTimeout()、setInterval()和execScript()的第一個參數 'no-implied-eval': 2, // 禁止在塊中聲明 function 'no-inner-declarations': [2, 'functions'], // 不允許 RegExp 構造函數中使用無效的正則表達式字符串 'no-invalid-regexp': 2, // 禁止使用無效空格(不是正常的制表符和空格),但允許在字符串中使用任何空格字符 'no-irregular-whitespace': 2, // 禁止使用該__iterator__屬性 'no-iterator': 2, // label 標簽名不能與變量名相同 'no-label-var': 2, // 禁止使用標簽語句 'no-labels': [2, { 'allowLoop': false, 'allowSwitch': false }], // 禁止使用不必要的嵌套塊 'no-lone-blocks': 2, // 不允許使用混合空格和制表符進行縮進 'no-mixed-spaces-and-tabs': 2, // 禁止在邏輯表達式,條件表達式,聲明,數組元素,對象屬性,序列和函數參數周圍使用多個空格 'no-multi-spaces': 2, // 禁止使用斜線(\)進行換行 'no-multi-str': 2, // 禁止多個連續空行,最大連續空行數為 1 'no-multiple-empty-lines': [2, { 'max': 1 }], // 不允許修改只讀全局變量 'no-native-reassign': 2, // 不允許否定 in 表達式中的左操作數 'no-negated-in-lhs': 2, // 不允許使用 Object 構造函數 'no-new-object': 2, // 不允許使用 new require 'no-new-require': 2, // 禁止使用 Symbol 構造器 'no-new-symbol': 2, // 禁止使用原始包裝器,new String,new Number 或 new Boolean 'no-new-wrappers': 2, // 禁止將全局對象作為函數調用,即不允許調用 Math,JSON 和 Reflect 對象作為函數 'no-obj-calls': 2, // 不允許使用八進制 'no-octal': 2, // 不允許字符串中的八進制轉義序列 'no-octal-escape': 2, // node 中避免使用__dirname 和__filename 全局變量進行路徑字符串拼接 'no-path-concat': 2, // 使用方法 getPrototypeOf 替換__proto__屬性 'no-proto': 2, // 不允許同一作用域內聲明相同變量名稱 'no-redeclare': 2, // 正則表達式文字中不允許有多個空格 'no-regex-spaces': 2, // return 語句中的賦值必需有括號包裹 'no-return-assign': [2, 'except-parens'], // 不允許將變量自我賦值 'no-self-assign': 2, // 禁止變量與自己進行比較操作 'no-self-compare': 2, // 禁止使用逗號運算符,除非在 for 語句的初始化或更新部分,表達式序列顯式包含在圓括號中 'no-sequences': 2, // 禁止對全局對象賦值 'no-shadow-restricted-names': 2, // 功能標識符與其應用程序之間不允許有間距 'no-spaced-func': 2, // 禁止使用稀疏數組,不適用於最后一個元素之后的尾隨逗號 'no-sparse-arrays': 2, // 使用 this 前請確保 super() 已調用 'no-this-before-super': 2, // 用 throw 拋錯時,拋出 Error 對象而不是字符串 'no-throw-literal': 2, // 禁止在行尾添加尾隨空白(空格,制表符和其他 Unicode 空白字符) 'no-trailing-spaces': 2, // 禁止引用未聲明的變量 'no-undef': 2, // 禁止使用 undefined 來初始化變量 'no-undef-init': 2, // 禁止混淆多行表達式 'no-unexpected-multiline': 2, // 檢查循環條件內的引用是否在循環中被修改 'no-unmodified-loop-condition': 2, // 當存在更簡單的選擇時,此規則不允許三元運算符 'no-unneeded-ternary': [2, { 'defaultAssignment': false // 不允許將條件表達式作為默認的分配模式 }], // return,throw,continue,和 break 語句后不允許跟代碼 'no-unreachable': 2, // 不允許 return,throw,break,和 continue 語句使用 finally 塊,即:finally 代碼塊中不要再改變程序執行流程,但它允許間接使用 'no-unsafe-finally': 2, // 不允許存在聲明但未使用的變量,函數和函數的參數 'no-unused-vars': [2, { 'vars': 'all', // 檢查全局范圍內的變量 'args': 'none' // 不檢查參數 }], // 禁止使用.call()和.apply() 'no-useless-call': 2, // 禁止不必要的計算屬性鍵作對象屬性 'no-useless-computed-key': 2, // 禁止不必要的構造函數 'no-useless-constructor': 2, // 關閉不必要的轉義檢測規則 'no-useless-escape': 0, // 對象的屬性在同一行上時禁止在屬性前使用空格,當對象和屬性位於單獨的行上時,此規則允許使用空格,因為通常在較長的屬性鏈中添加換行符 'no-whitespace-before-property': 2, // 禁止使用 with 'no-with': 2, // 一個變量關鍵字(var,let 或 const)只聲明一個變量 'one-var': [2, { 'initialized': 'never' // 每個作用域要求多個變量聲明用於初始化變量 }], // 使用一致的換行符樣式,將換行符放置在運算符之后 'operator-linebreak': [2, 'after', { 'overrides': { '?': 'before', // 三元運算換行符置於 ? 前 ':': 'before' // 三元運算換行符置於 : 前 } }], // 在 block 語句和類的開頭和結尾處不允許出現空行 'padded-blocks': [2, 'never'], // 字符串盡可能使用單引號 'quotes': [2, 'single', { 'avoidEscape': true, // 允許字符串使用單引號或雙引號,只要字符串包含必須被轉義的引號即可 'allowTemplateLiterals': true // 允許字符串使用反引號 }], // 禁止使用分號結尾 'semi': [2, 'never'], // 分號后強制使用空格,並在分號前禁止使用空格 'semi-spacing': [2, { 'before': false, 'after': true }], // 代碼塊前至少有一個空格 'space-before-blocks': [2, 'always'], // 函數名稱或 function 關鍵字與開頭括號之間不允許有空格 'space-before-function-paren': [2, 'never'], // 禁止在括號內使用空格 'space-in-parens': [2, 'never'], // 中綴運算符周圍需有空格 'space-infix-ops': 2, // 一元運算詞后須有空格,一元運算符后不允許有空格 'space-unary-ops': [2, { 'words': true, 'nonwords': false }], // 注釋//和/*后必須跟一個空格 'spaced-comment': [2, 'always', { 'markers': ['global', 'globals', 'eslint', 'eslint-disable', '*package', '!', ','] }], // 模板字符串${}中不允許有空格 'template-curly-spacing': [2, 'never'], // 不允許 NaN 值得直接比較,需使用 isNaN() 'use-isnan': 2, // typeof 比較需使用有效字符串("undefined","object","boolean","number","string","function","symbol",和"bigint") 'valid-typeof': 2, // 自調用匿名函數 (IIFEs) 使用括號包裹 'wrap-iife': [2, 'any'], // yield 表達式前后都要有空格 'yield-star-spacing': [2, 'both'], // 禁止 Yoda 條件(條件的字面值排在第一,而變量排在第二) 'yoda': [2, 'never'], // 使用 const 聲明初始賦值后永遠不重新賦值的變量 'prefer-const': 2, // 生產環境中禁止使用 debugger 調試器 'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0, // 花括號內需要空格({}除外) 'object-curly-spacing': [2, 'always', { objectsInObjects: false // 以對象元素開始或結束的花括號間不允許有空格 }], // 數組方括號內不允許使用空格 'array-bracket-spacing': [2, 'never'] } } 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM