Easy configuration
:heavy_check_mark:
A ESLint plugin for webpack
The plugin was born with the purpose of solving some problems of the eslint-loader.
| eslint-webpack-plugin | eslint-loader | |
|---|---|---|
eslint-webpack-plugin eslint-loader Easy configuration :heavy_check_mark: | :heavy_check_mark: | :heavy_multiplication_x: |
eslint-webpack-plugin eslint-loader Generate unique an output report :heavy_check_mark: | :heavy_check_mark: | :heavy_multiplication_x: |
eslint-webpack-plugin eslint-loader Using cache directly from eslint :heavy_check_mark: | :heavy_check_mark: | :heavy_multiplication_x: |
eslint-webpack-plugin eslint-loader Lint only changed files :heavy_check_mark: | :heavy_check_mark: | :heavy_multiplication_x: |
eslint-loaderThe loader eslint-loader will be deprecated soon, please use this plugin instead.
Before:
module.exports = {
// ...
module: {
rules: [
{
test: /\.js$/,
exclude: /node_modules/,
loader: 'eslint-loader',
options: {
// eslint options (if necessary)
},
},
],
},
// ...
}; After:
const ESLintPlugin = require('eslint-webpack-plugin');
module.exports = {
// ...
plugins: [new ESLintPlugin(options)],
// ...
}; npm install eslint-webpack-plugin --save-dev Note: You also need to install eslint from npm, if you haven't already:
npm install eslint --save-dev In your webpack configuration:
const ESLintPlugin = require('eslint-webpack-plugin');
module.exports = {
// ...
plugins: [new ESLintPlugin(options)],
// ...
}; You can pass eslint options.
Note that the config option you provide will be passed to the ESLint class. This is a different set of options than what you'd specify in package.json or .eslintrc. See the eslint docs for more details.
Warning: In eslint-webpack-plugin version 1 the options were passed to the now deprecated CLIEngine.
contextStringcompiler.contextA string indicating the root of your files.
eslintPathStringeslintPath to eslint instance that will be used for linting. If the eslintPath is a folder like a official eslint, or specify a formatter option. now you dont have to install eslint.
filesString|Array[String]'.'Specify directories, files, or globs. Must be relative to options.context. Directories are traveresed recursively looking for files matching options.extensions. File and glob patterns ignore options.extensions.
extensionsString|Array[String]'js'Specify extensions that should be checked.
fixBooleanfalseWill enable ESLint autofix feature.
Be careful: this option will change source files.
formatterString|Function'stylish'Accepts a function that will have one argument: an array of eslint messages (object). The function must return the output as a string. You can use official eslint formatters.
lintDirtyModulesOnlyBooleanfalseLint only changed files, skip lint on start.
By default the plugin will auto adjust error reporting depending on eslint errors/warnings counts. You can still force this behavior by using emitError or emitWarning options:
emitErrorBooleanfalseWill always return errors, if set to true.
emitWarningBooleanfalseWill always return warnings, if set to true.
failOnErrorBooleanfalseWill cause the module build to fail if there are any errors, if set to true.
failOnWarningBooleanfalseWill cause the module build to fail if there are any warnings, if set to true.
quietBooleanfalseWill process and report errors only and ignore warnings, if set to true.
outputReportBoolean|ObjectfalseWrite the output of the errors to a file, for example a checkstyle xml file for use for reporting on Jenkins CI.
The filePath is an absolute path or relative to the webpack config: output.path. You can pass in a different formatter for the output file, if none is passed in the default/configured formatter will be used.