ESLint: 規則配置覆蓋

LinForest_zZ發表於2024-11-11

MarkTime: missed

LogTime: 2024-11-10 02:15:25


"rules": {
  "no-debugger": 0,
  "incident": [
    "off",
    2
  ]
}
"rules": {
  "no-debugger": "off",
  "no-console": "off",
  "generator-star-spacing": "off",
  "no-tabs": "off",
  "no-unused-vars": "off",
  "no-irregular-whitespace": "off"
}

放置座標

  • 放置於.eslintrc, 編寫格式多種

    1. package.json(內容經過刪減, 只留下結構為參考)

      • {
          "name": "xxx",
          "version": "1.0.0",
          "private": true,
          "scripts": {
            "serve": "vue-cli-service serve",
            "lint": "vue-cli-service lint",
            "serve:cptest": "vue-cli-service serve --mode cptest",
            "serve:cptestdev": "vue-cli-service serve --mode cptestdev",
          },
          "dependencies": {},
          "devDependencies": {
            "@vue/cli-plugin-eslint": "~4.5.0",
            "@vue/eslint-config-standard": "^5.1.2",
            "babel-eslint": "^10.1.0",
            "eslint": "^6.7.2",
            "eslint-plugin-import": "^2.20.2",
            "eslint-plugin-node": "^11.1.0",
            "eslint-plugin-promise": "^4.2.1",
            "eslint-plugin-standard": "^4.0.0",
            "eslint-plugin-vue": "^6.2.2"
          },
          "eslintConfig": {
            "root": true,
            "env": {
              "node": true
            },
            "extends": [
              "plugin:vue/essential",
              "@vue/standard"
            ],
            "parserOptions": {
              "parser": "babel-eslint"
            },
            "rules": {
              "no-debugger": 1,
              "no-console": 0
            }
          }
        }
        
    2. .eslintrc.cjs

      • /* eslint-env node */
        require('@rushstack/eslint-patch/modern-module-resolution')
        
        module.exports = {
          root: true,
          extends: [
            'plugin:vue/vue3-essential',
            'eslint:recommended',
            '@vue/eslint-config-prettier'
          ],
          parserOptions: {
            ecmaVersion: 'latest'
          },
          rules: {
            'prettier/prettier': [ // 配置 Prettier 的規則
              'error',
              {
                endOfLine: 'auto', // 自動處理換行符
                parser: 'typescript' // 使用 TypeScript 解析器
              }
            ],
            eqeqeq: [ // 強制使用 === 和 !== 替換 == 和 !=
                'warn', 
                'always', // 總是使用嚴格相等
                { null: 'never' } // 不強制 null 使用嚴格相等
            ],
            'no-debugger': ['error'], // 禁止使用 debugger 語句
            quotes: ['error', 'single'], // 強制使用單引號
            'vue/no-multi-spaces': [ // 禁止在 Vue 模板中使用多個連續空格
              'error',
              {
                ignoreProperties: false // 不忽略屬性中的多空格
              }
            ],
            'vue/no-unused-components': [ // 禁止未使用的 Vue 元件
              'error',
              {
                ignoreWhenBindingPresent: true
              }
            ],
            'vue/no-unused-vars': [ // 禁止在 Vue 模板中未使用的變數
              'error',
              {
                ignorePattern: '^_'
              }
            ],
            'vue/html-closing-bracket-newline': [ // 控制 HTML 關閉標籤的換行符
              'error',
              {
                singleline: 'never', // 單行標籤不換行
                multiline: 'never' // 多行標籤不換行
              }
            ],
            'vue/multi-word-component-names': 'off', // 強制 Vue 元件名稱為多詞 // 關閉此規則
            'vue/max-attributes-per-line': [ // vue/max-attributes-per-line
              'error',
              {
                singleline: {
                  max: 3 // 單行最多 3 個屬性
                },
                multiline: {
                  max: 1 // 多行每行最多 1 個屬性
                }
              }
            ]
          }
        }
        
        
    3. ...(不贅述了)

相關文章