您好,登錄后才能下訂單哦!
這篇“Vue項目中ESLint怎么配置”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“Vue項目中ESLint怎么配置”文章吧。
打開左上角文件-首選項-設置,在設置中搜索eslint,點擊并翻頁到最下面,點擊setting.json進行配置:
// 值設置為true時,每次保存的時候自動格式化;值設置為false時,代碼格式化請按shift+alt+F "editor.formatOnSave": false, // 每次保存的時候將代碼按eslint格式進行修復: "eslint.validate": ["javascript", "javascriptreact", "html", "vue"], "eslint.enable": true, "eslint.run": "onType", "eslint.options": { "extensions": ["js", "vue", ".jsx", ".tsx"] }, "editor.codeActionsOnSave": { "source.fixAll.eslint": true }, "eslint.format.enable": true, "eslint.lintTask.enable": true,
鼠標右鍵->使用…格式化文檔->配置默認格式程序->選擇eslint
這樣之后 alt+Shift+f之后就是按照eslint規則保存
npm i eslint -D
npm i eslint-plugin-vue vue-eslint-parser -D npm i babel-eslint -D npm i eslint-config-standard-D
ESLint配置的內容
環境:配置腳本在哪個環境下運行;
全局變量:腳本運行期間會訪問額外的全局變量;
規則:配置代碼的語法規則及規則的等級。
具體內容:
module.exports = { //此項是用來告訴eslint找當前配置文件不能往父級查找 root: true, //指定eslint繼承的模板 extends: ["plugin:vue/essential", "@vue/standard"], //此項指定環境的全局變量,下面的配置指定為瀏覽器環境 env: { browser: true }, // 此項是用來提供插件的,插件名稱省略了eslint-plugin-,下面這個配置是用來規范html的 plugins: ["vue"], //指定javaScript語言類型和風格 parserOptions: { parser: "babel-eslint" }, //規則https://www.wenjiangs.com/docs/eslint,vue規則:https://eslint.vuejs.org/rules/ // 主要有如下的設置規則,可以設置字符串也可以設置數字,兩者效果一致 // "off" -> 0 關閉規則 // "warn" -> 1 開啟警告規則 //"error" -> 2 開啟錯誤規則 rules: { // 使用 === 替代 == allow-null允許null和undefined== [2, "allow-null"] eqeqeq: 0, // 雙峰駝命名格式 camelcase: 0, //要求或者禁止Yoda條件 yoda: 2, // 行尾不使用分號 semi: 0, //強制一致地使用反引號、雙引號或單引號。 quotes: 2, //強制函數中的變量在一起聲明或分開聲明 "one-var": 2, // 禁用 console "no-console": process.env.NODE_ENV === "production" ? "error" : "off", // 強制 generator 函數中 * 號周圍使用一致的空格 "generator-star-spacing": "off", // 禁用 debugger "no-debugger": process.env.NODE_ENV === "production" ? "error" : "off", // 禁止對象字面量中出現重復的 key "no-dupe-keys": 2, // 函數參數不能重復 "no-dupe-args": 2, // 禁止重復的函數聲明 "no-func-assign": 2, // 禁止重復的 case 標簽 "no-duplicate-case": 2, // 禁用未聲明的變量 "no-undef": 1, //禁止出現多個空格 "no-multi-spaces": 2, // 不允許標簽與變量同名 "no-label-var": 2, //禁止tab "no-tabs": 1, // 禁止 var 聲明 與外層作用域的變量同名 "no-shadow": 0, // 禁止 if 語句中有 return 之后有 else "no-else-return": 0, // 禁止出現空函數.如果一個函數包含了一條注釋,它將不會被認為有問題。 "no-empty-function": 1, // 禁止出現未使用過的變量 "no-unused-vars": 1, //禁止在返回語句中賦值 "no-return-assign": 0, // 禁用行尾空格 "no-trailing-spaces": 2, // 禁止修改 const 聲明的變量 "no-const-assign": 2, // 禁止類成員中出現重復的名稱 "no-dupe-class-members": 2, //禁止使用alert confirm promp "no-alert": process.env.NODE_ENV === "production" ? "error" : "off", //禁止多余的冒號 "no-extra-semi": 2, //禁止在條件中使用常量表達式 "no-constant-condition": 2, //空行最多不能超過2行 "no-multiple-empty-lines": [1, { max: 2 }], //禁止無用的表達式 "no-unused-expressions": 1, //禁用不必要的嵌套塊 "no-lone-blocks": 2, //不允許使用逗號操作符 "no-sequences": 2, //禁止不規則的空白 "no-irregular-whitespace": 2, //函數括號前的空格 "space-before-function-paren": 0, //處理回調錯誤 "handle-callback-err": 1, //首選承諾拒絕錯誤 "prefer-promise-reject-errors": 0, //要求或禁止在注釋前有空白 (space 或 tab) "spaced-comment": 1, //強制關鍵字周圍空格的一致性 "keyword-spacing": 1, //強制在花括號中使用一致的空格 "object-curly-spacing": 1, // 控制逗號前后的空格 "comma-spacing": [ 2, { before: false, after: true } ], // 要求或禁止 var 聲明語句后有一行空行 "newline-after-var": 0, //強制使用一致的縮進 indent: 0, // html 內 縮進 "vue/html-indent": 0, // 插值兩端必須留一個空格 "vue/mustache-interpolation-spacing": 0, //強制每行的最大屬性數 "vue/max-attributes-per-line": 0, //vue/屬性順序 "vue/attributes-order": 0, // 強制要求在對象字面量的屬性中鍵和值之間使用一致的間距 "var obj = { "foo": 42 };" "key-spacing": 0, // 禁止末尾逗號 "comma-dangle": 0, // 強制在塊之前使用一致的空格 "function a() {}" "space-before-blocks": 0, // 要求操作符周圍有空格 "a ? b : c" "space-infix-ops": 2, // "() => {};" // 強制箭頭函數前后使用一致的空格 "arrow-spacing": 2, //插值中強制統一間距 //強制組件中的屬性順序 "vue/order-in-components": 0, //不允許字段名稱重復 "vue/no-dupe-keys": 2, //多次引用同個包 "import/no-duplicates": 2, //執行有效v-for指令 "vue/valid-v-for": 2, //V-bind:key使用v-for指令要求 "vue/require-v-for-key": 2, //不允許解析錯誤<template> "vue/no-parsing-error": [2, { "x-invalid-end-tag": false }], //強制執行自閉式 "vue/html-self-closing": "off", //不允許計算屬性中的副作用 "vue/no-side-effects-in-computed-properties": 0, //禁止 v-for 指令或范圍屬性的未使用變量定義 "vue/no-unused-vars": 1, //執行有效v-model指令 "vue/valid-v-model": 2, //強制執行有效的模板根 "vue/valid-template-root": 2 } };
lint:檢驗eslint規則
lint-fix:修復一般的eslint檢驗出的缺陷比如雙引號變為單引號
"dev": "vue-cli-service serve --open", "build": "vue-cli-service build", "dev-eslint": "npm run lint vue-cli-service serve --open", "build-eslint": "npm run lint vue-cli-service build", "lint": "eslint --ext .js --ext .vue src", "lint-fix": "eslint --fix --ext .js,.vue src"
在vue.config.js中把lintOnSave改為true
關閉ESLint檢查
多行關閉所有規則:
/* eslint-disable / console.log(‘hello world') / eslint-enable */
單行關閉所有規則:
console.log(‘hello world') // eslint-disable-line // eslint-disable-next-line console.log(‘hello world')
單行關閉指定規則:
console.log(‘hello world') // eslint-disable-line no-alert // eslint-disable-next-line no-alert console.log(‘hello world')
以上就是關于“Vue項目中ESLint怎么配置”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。