Konfiguracja ESLint

[eslint.org] Configuring ESLint
gdzie zapisać
  • config comments, embed into file
  • config files .eslintrc.*
  • package.json eslintConfig

może być globalny plik konfiguracyjny w katalogu domowym ~/

/* eslint-disable no-alert, no-console */
// eslint-disable-next-line
environments

[eslint.org] specifying environments

An environment defines global variables that are predefined. Eslint nie pozwala używać niezadeklarowanych zmiennych, dlatego musi znać listę globalnych.

"env": {
    "browser": true,
    "node": true
}
plugins

globally-installed instance of ESLint can only use globally-installed ESLint plugins

A plugin is an npm package that usually exports rules. Some plugins also export one or more named configurations.

rules
"rules": {
  "eqeqeq": "off",
  "curly": "error",
  "quotes": ["error", "double"],
  "plugin1/rule1": "error"
}

disable per file

"rules": {...},
"overrides": [
  {
    "files": ["*-test.js","*.spec.js"],
    "rules": {
      "no-unused-expressions": "off"
    }
  }
]
extends

A configuration file can extend the set of enabled rules from base configurations.

"eslint:recommended"

eslint --init

import resolver

[github] eslint-plugin-import

Nie jestem pewien czy ta wtyczka jest potrzebna, bo można też tak:

"import/resolver": {
  "node": {
    "extensions": [".js", ".jsx", ".ts", ".tsx"]
  }
}