To use, we need to install it first. It can be installed locally (per project) or globally. To install it globally:
$ npm install -g eslint
We can verify that package is installed:
$ npm -g list | grep eslint
├─┬ eslint@7.4.0
│ ├─┬ eslint-scope@5.1.0
│ ├─┬ eslint-utils@2.1.0
│ │ └── eslint-visitor-keys@1.3.0 deduped
│ ├── eslint-visitor-keys@1.3.0
│ │ └── eslint-visitor-keys@1.3.0 deduped
...and also check its command line args:
$ eslint --help
eslint [options] file.js [file.js] [dir]
Basic configuration:
--no-eslintrc Disable use of configuration from .eslintrc.*
-c, --config path::String Use this configuration, overriding .eslintrc.* config options if present
--env [String] Specify environments
--ext [String] Specify JavaScript file extensions
--global [String] Define global variables
--parser String Specify the parser to be used
--parser-options Object Specify parser options
--resolve-plugins-relative-to path::String A folder where plugins should be resolved from, CWD by default
Specifying rules and plugins:
--rulesdir [path::String] Use additional rules from this directory
--plugin [String] Specify plugins
--rule Object Specify rules
Fixing problems:
--fix Automatically fix problems
--fix-dry-run Automatically fix problems without saving the changes to the file system
--fix-type Array Specify the types of fixes to apply (problem, suggestion, layout)
Ignoring files:
--ignore-path path::String Specify path of ignore file
--no-ignore Disable use of ignore files and patterns
--ignore-pattern [String] Pattern of files to ignore (in addition to those in .eslintignore)
Using stdin:
--stdin Lint code provided on <STDIN> - default: false
--stdin-filename String Specify filename to process STDIN as
Handling warnings:
--quiet Report errors only - default: false
--max-warnings Int Number of warnings to trigger nonzero exit code - default: -1
Output:
-o, --output-file path::String Specify file to write report to
-f, --format String Use a specific output format - default: stylish
--color, --no-color Force enabling/disabling of color
Inline configuration comments:
--no-inline-config Prevent comments from changing config or rules
--report-unused-disable-directives Adds reported errors for unused eslint-disable directives
Caching:
--cache Only check changed files - default: false
--cache-file path::String Path to the cache file. Deprecated: use --cache-location - default: .eslintcache
--cache-location path::String Path to the cache file or directory
Miscellaneous:
--init Run config initialization wizard - default: false
--env-info Output execution environment information - default: false
--no-error-on-unmatched-pattern Prevent errors when pattern is unmatched
--debug Output debugging information
-h, --help Show help
-v, --version Output the version number
--print-config path::String Print the configuration for the given file
To initialise and configure ESLint launch configuration wizard:
$ eslint --init
ESLint configuration will be saved in file .eslintrc.json (if you opt json file to be used). Example content:
.eslintrc.json:
{
"env": {
"browser": true,
"es2020": true
},
"extends": "eslint:recommended",
"parserOptions": {
"ecmaVersion": 11
},
"rules": {
"indent": [
"error",
4
],
"quotes": [
"error",
"single"
],
"semi": [
"error",
"always"
]
}
}
If you use VS Code, you can install ESLint plugin which will pick up this configuration and automatically lint your code and show warnings and error son the go.
ESLint should be added to Node project as a dev dependency.
package.json (created by $npm init):
"devDependencies": {
"eslint": "^7.4.0"
}
It is also possible to run this linter from the terminal. For example, to lint all files in the current project recursively with respect to .eslintrc.json:
$eslint .
...
2:32009 error Strings must use singlequote quotes
3:23 error Strings must use singlequote quotes
3:42 error Missing semicolon semi
3:43 error Strings must use singlequote quotes
3:70 error Strings must use singlequote quotes
3:166 error Strings must use singlequote quotes
3:207 error Strings must use singlequote quotes
3:280 error Strings must use singlequote quotes
3:338 error Missing semicolon semi
3:460 error Missing semicolon semi
3:555 error Missing semicolon semi
...
4:22578 error Missing semicolon semi
4:22601 error Missing semicolon semi
✖ 11436 problems (11436 errors, 0 warnings)
To ignore rules in .eslintrc.json and run the linter only for JavaScript files and only to check one particular rule:
/my-project$ eslint . --ext .js --no-eslintrc --rule 'indent: ["error", 4, { "SwitchCase": 1 }]'
/my-project/path/to/file.js
28:1 error Expected indentation of 12 spaces but found 16 indent
46:1 error Expected indentation of 12 spaces but found 16 indent
186:1 error Expected indentation of 4 spaces but found 8 indent
187:1 error Expected indentation of 4 spaces but found 8 indent
188:1 error Expected indentation of 4 spaces but found 8 indent
189:1 error Expected indentation of 4 spaces but found 8 indent
Rules used here was indent.
No comments:
Post a Comment