This version of eslint-webpack-plugin only supports webpack 5. For the webpack 4, see the2.x branch.
This plugin usesESlint
to find and fix problems in your JavaScript code during the Webpack build process.
To begin, you'll need to installeslint-webpack-plugin
:
npm install eslint-webpack-plugin --save-dev
or
yarn add -D eslint-webpack-plugin
or
pnpm add -D eslint-webpack-plugin
[!NOTE]
You also need to install
eslint >= 8
from npm, if you haven't already:
npm install eslint --save-dev
or
yarn add -D eslint
or
pnpm add -D eslint
Then add the plugin to your webpack configuration. For example:
const ESLintPlugin=require('eslint-webpack-plugin');module.exports={// ... plugins:[newESLintPlugin(options)],// ...};
You can passESLint Node.js API options.
[!NOTE]
The config option you provide will be passed to the
ESLint
class.This is a different set of options than what you'd specify inpackage.json
oreslint.config.js
(since ESLint v9.0.0, formerly.eslintrc
).See theESlint docs for more details.
[!WARNING]
In eslint-webpack-plugin version 1 the options were passed to the now-deprecatedCLIEngine.
cache
typecache=boolean;
true
The cache is enabled by default to decrease execution time.
cacheLocation
typecacheLocation=string;
node_modules/.cache/eslint-webpack-plugin/.eslintcache
Specify the path to the cache location. Can be a file or a directory.
configType
typeconfigType='flat'|'eslintrc';
flat
Specify the type of configuration to use with ESLint.
eslintrc
is the classic configuration format available in most ESLint versions.flat
is the new format introduced in ESLint 8.21.0.The new configuration format is explained in itsown documentation.
context
typecontext=string;
compiler.context
Base directory for linting.
eslintPath
typeeslintPath=string;
eslint
Path toeslint
instance that will be used for linting.
If theeslintPath
is a folder like a official ESlint, or specify aformatter
option, now you don't have to installeslint
.
extensions
typeextensions=string|Array<string>;
'js'
Specify file extensions that should be checked.
exclude
typeexclude=string|Array<string>;
'node_modules'
Specify the files/directories to exclude. Must be relative tooptions.context
.
resourceQueryExclude
typeresourceQueryExclude= RegExp|Array<RegExp>;
[]
Specify the resource query to exclude.
files
typefiles=string|Array<string>;
null
Specify directories, files, or globs. Must be relative tooptions.context
.Directories are traversed recursively looking for files matchingoptions.extensions
.File and glob patterns ignoreoptions.extensions
.
fix
typefix=boolean;
false
Will enableESLint autofix feature.
Be careful: this option will modify source files.
formatter
typeformatter=string|( results:Array<import('eslint').ESLint.LintResult>, data?:import('eslint').ESLint.LintResultData|undefined)=>string
'stylish'
Accepts a function that receives an array of ESLint messages (object) as its argument and must return a string as output.
You can use officialESlint formatters.
lintDirtyModulesOnly
typelintDirtyModulesOnly=boolean;
false
Lint only changed files, skipping initial lint on build start.
threads
typethreads=boolean|number;
false
Will run lint tasks across a thread pool. The pool size is automatic unless you specify a number.
By default the plugin will auto adjust error reporting depending on eslint errors/warnings counts.
You can still force this behavior by usingemitError
oremitWarning
options:
emitError
typeemitError=boolean;
true
The errors found will always be emitted, to disable set tofalse
.
emitWarning
typeemitWarning=boolean;
true
The warnings found will always be emitted, to disable set tofalse
.
failOnError
typefailOnError=boolean;
true
Will cause the module build to fail if any errors are found, to disable set tofalse
.
failOnWarning
typefailOnWarning=boolean;
false
Will cause the module build to fail if any warnings are found, if set totrue
.
quiet
typequiet=boolean;
false
Will process and report errors only and ignore warnings, if set totrue
.
outputReport
typeoutputReport=|boolean|{ filePath?:string|undefined; formatter?:|(|string|(( results:Array<import('eslint').ESLint.LintResult>, data?:import('eslint').ESLint.LintResultData|undefined,)=>string))|undefined;};
false
Write ESLint results to a file, for example a checkstyle xml file for use for reporting on Jenkins CI.
formatter
for the output file.if none is passed in the default/configured formatter will be used.We welcome all contributions!
If you're new here, please take a moment to review our contributing guidelines.