1. ホーム
  2. ビュー

ESlintの気の遠くなるような構文検出の設定をオフにする方法

2022-02-24 09:33:54

ちょうどパートナーが行未満のスペースエラーは、エラーのすべての種類を報告されていない開始?あなたは思想の自由を失っていると思いますか?拷問の後、私はeslintの構文検出の制限を削除するには良い記事を見つけた、segmentfaultから撮影した学習メモとして

私は実際にこれらの構文検出に反対しているわけではありませんが、vue-cli scaffoldによって作成されたデフォルトのeslintルールのように、本当に荒らさなければならない多くの反個人的な願いのようです。

  • コード末尾にセミコロンをつけない 

    ;
    

  • コード内に複数の空白行を作らない

  • タブキーは使用できませんので、必ず空白2文字に置き換えてください。

  • 宣言されているが使用されていない変数をコードに含めることはできません。

上記のルールは、個人的には本当に反人間的です コードのデバッグが大変すぎる。

eslintを閉じる

ここでは、vue-cli の scaffolding を閉じる方法だけですが、実はとても簡単です。  build/webpack.base.conf.js  設定ファイルで、eslintのルールをコメントアウトします。

module: {
    rules: [
      // {
      // test: /\. (js|vue)$/,
      // loader: 'eslint-loader',
      // enforce: 'pre',
      // include: [resolve('src'), resolve('test')],
      // options: {
      // formatter: require('eslint-friendly-formatter')
      // }
      // },
      
      ...
     ]
     ...
   }

eslintの構文検出を維持したい場合は、あなたの規約に合わないルールを削除してください。

設定ファイルはプロジェクトのルートにあり、ファイル名は  .eslintrc.*  を名前として使用します。

module.exports = {
  root: true,
  parser: 'babel-eslint',
  parserOptions: {
    // Set "script" (default) or "module" if your code is a module in ECMAScript.
    sourceType: 'module'
  },
  env: {
    browser: true,
  },
  // https://github.com/feross/standard/blob/master/RULES.md#javascript-standard-style
  extends: 'standard',
  // required to lint *.vue files
  plugins: [
    'html'
  ],
  // add your custom rules here
  '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,
    "no-unused-vars": [2, { 
      // Allow declaration of unused variables
      "vars": "local",
      // arguments are not checked
      "args": "none" 
    }],
    // Close statements with forced semicolon endings
    "semi": [0],
    // No more than 100 blank lines at most
    "no-multiple-empty-lines": [0, {"max": 100}],
    //Turn off disabling mixed tabs and spaces
    "no-mixed-spaces-and-tabs": [0],
  }
}





ここで  rules  の設定ルールです。

<スパン

コンフィギュレーションパラメーター

<スパン <スパン
rules: {
    "ruleName": [ruleValue, ruleConfig]
}

ルールの値です。

<スパン <スパン
"off" or 0 //close rule off
"warn" or 1 // on open rule as a warning (does not affect exit code)
"error" or 2 // treat the rule as an error (1 when the exit code is triggered)

への具体的な言及

https://eslint.org/docs/rules/no-unused-vars

共通ルール一覧

以下のルールの一覧は、Webからの引用です。

"no-alert": 0,// disable the use of alert confirm prompt
"no-array-constructor": 2,// disable array constructors
"no-bitwise": 0,//Prohibit the use of bitwise operators
"no-caller": 1,//Disable arguments.caller or arguments.callee
"no-catch-shadow": 2,//Disable catch clause arguments with the same name as an external scope variable
"no-class-assign": 2,//Disable assigning values to classes
"no-cond-assign": 2,//Disallow the use of assignment statements in conditional expressions
"no-console": 2,//Disable the use of consoles
"no-const-assign": 2,//Disallow modification of const declared variables
"no-constant-condition": 2,//Disallow the use of constant expressions in conditions if(true) if(1)
"no-continue": 0,//prohibit the use of continue
"no-control-regex": 2,//Prohibit the use of control characters in regular expressions
"no-debugger": 2,//Debugger is forbidden
"no-delete-var": 2,//Delete operator cannot be used on var declared variables
"no-div-regex": 1,// Cannot use regular expressions that look like division /=foo/
"no-dupe-keys": 2,// Do not allow duplicate keys when creating object literals {a:1,a:1}
"no-dupe-args": 2,//Function arguments cannot be duplicated
"no-duplicate-case": 2,//Switch case tags cannot be duplicated
"no-else-return": 2,//If there is a return inside the if statement, it cannot be followed by an else statement
"no-empty": 2,// the content of the block statement can not be empty
"no-empty-character-class": 2,//the content of [] in the regular expression cannot be empty
"no-empty-label": 2,//Forbid the use of empty labels
"no-eq-null": 2,//Forbid the use of == or ! = operator
"no-eval": 1,//forbid the use of eval
"no-ex-assign": 2,//forbid to assign values to exception parameters in catch statements
"no-extend-native": 2,//Disable extending native objects
"no-extra-bind": 2,//Disable unnecessary function binding
"no-extra-boolean-cast": 2,//Disable unnecessary bool conversions
"no-extra-parens": 2,//Prohibit unnecessary parentheses
"no-extra-semi": 2,//Disable superfluous colons
"no-fallthrough": 1,//Disable switch pass-through
"no-floating-decimal": 2,//Disable omitting the 0 .5 in floating point numbers 3.
"no-func-assign": 2,//Disable duplicate function declarations
"no-implicit-coercion": 1,//Disallow implicit conversions
"no-implied-eval": 2,//Disable implicit eval
"no-inline-comments": 0,//Disable inline comments
"no-inline-declarations": [2, "functions"],//prohibit the use of declarations (variables or functions) in block statements
"no-invalid-regexp": 2,//Disable invalid regular expressions
"no-invalid-this": 2,//Disable invalid this, only for constructors, classes, object literals
"no-irregular-whitespace": 2,//no irregular spaces
"no-iterator": 2,//Prohibit the use of the __iterator__ attribute
"no-label-var": 2,//Label name cannot be the same as the variable name declared by var
"no-labels": 2,//Prohibit label declarations
"no-lone-blocks": 2,//Prohibit unnecessary nested blocks
"no-lonely-if": 2,//Prohibit only if statements within else statements
"no-loop-func": 1,//prohibit the use of functions in loops (if no external variables are referenced without forming closures)
"no-mixed-requires": [0, false],//declaration cannot be mixed with declaration types
"no-mixed-spaces-and-tabs": [2, false],//prohibit mixing tabs and spaces
"linebreak-style": [0, "windows"],//line feed style
"no-multi-spaces": 1,//no extra spaces
"no-multi-str": 2,//Strings can't use \ newlines
"no-multiple-empty-lines": [1, {"max": 2}],//no more than 2 blank lines
"no-native-reassign": 2,//can't override native objects
"no-negated-in-lhs": 2,//The left side of the in operator cannot have !
"no-nested-ternary": 0,//Nested trinomials are forbidden
"no-new": 1,//Prohibit the use of new to construct an instance without assigning a value
"no-new-func": 1,//Disable the use of new Function
"no-new-object": 2,//Disable the use of new Object()
"no-new-require": 2,//prohibit the use of new require
"no-new-wrappers": 2,//prohibit the use of new to create wrapper instances, new String new Boolean new Number
"no-obj-calls": 2,// Cannot call built-in global objects, such as Math() JSON()
"no-octal": 2,//Forbid the use of octal numbers
"no-octal-escape": 2,//Disable the use of octal escape sequences
"no-param-reassign": 2,//Disable reassigning parameters
"no-path-concat": 0,//Node cannot use __dirname or __filename for path concatenation
"no-plusplus": 0,//Forbid the use of ++, --
"no-process-env": 0,//prohibit the use of process.env
"no-process-exit": 0,//prohibit the use of process.exit()
"no-proto": 2,//Prohibit the use of __proto__ attribute
"no-redeclare": 2,//Prohibit repeated declaration of variables
"no-regex-spaces": 2,//Disallow the use of multiple spaces in regular expression literals /foo b