UNPKG

eslint-webpack-plugin

Version:
367 lines (236 loc) 7.72 kB
<div align="center"> <a href="https://github.com/eslint/eslint"><img width="200" height="200" src="https://cdn.worldvectorlogo.com/logos/eslint.svg"></a> <a href="https://github.com/webpack/webpack"><img width="200" height="200" src="https://webpack.js.org/assets/icon-square-big.svg"></a> </div> [![npm][npm]][npm-url] [![node][node]][node-url] [![tests][tests]][tests-url] [![coverage][cover]][cover-url] [![discussion][discussion]][discussion-url] [![size][size]][size-url] # eslint-webpack-plugin > This version of eslint-webpack-plugin only works with webpack 5. For the webpack 4, see the [2.x branch](https://github.com/webpack-contrib/eslint-webpack-plugin/tree/2.x). This plugin uses [`eslint`](https://eslint.org/) to find and fix problems in your JavaScript code ## Getting Started To begin, you'll need to install `eslint-webpack-plugin`: ```console npm install eslint-webpack-plugin --save-dev ``` or ```console yarn add -D eslint-webpack-plugin ``` or ```console pnpm add -D eslint-webpack-plugin ``` > [!NOTE] > > You also need to install `eslint >= 8` from npm, if you haven't already: ```console npm install eslint --save-dev ``` or ```console yarn add -D eslint ``` or ```console pnpm add -D eslint ``` Then add the plugin to your webpack config. For example: ```js const ESLintPlugin = require('eslint-webpack-plugin'); module.exports = { // ... plugins: [new ESLintPlugin(options)], // ... }; ``` ## Options You can pass [eslint options](https://eslint.org/docs/developer-guide/nodejs-api#-new-eslintoptions). > [!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 in `package.json` or `.eslintrc`. > See the [eslint docs](https://eslint.org/docs/developer-guide/nodejs-api#-new-eslintoptions) for more details. > [!WARNING] > > In eslint-webpack-plugin version 1 the options were passed to the now deprecated [CLIEngine](https://eslint.org/docs/developer-guide/nodejs-api#cliengine). ### `cache` - Type: ```ts type cache = boolean; ``` - Default: `true` The cache is enabled by default to decrease execution time. ### `cacheLocation` - Type: ```ts type cacheLocation = string; ``` - Default: `node_modules/.cache/eslint-webpack-plugin/.eslintcache` Specify the path to the cache location. Can be a file or a directory. ### `configType` - Type: ```ts type configType = 'flat' | 'eslintrc'; ``` - Default: `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 its [own documentation](https://eslint.org/docs/latest/use/configure/configuration-files-new). ### `context` - Type: ```ts type context = string; ``` - Default: `compiler.context` A string indicating the root of your files. ### `eslintPath` - Type: ```ts type eslintPath = string; ``` - Default: `eslint` Path 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 don't have to install `eslint`. ### `extensions` - Type: ```ts type extensions = string | Array<string>; ``` - Default: `'js'` Specify extensions that should be checked. ### `exclude` - Type: ```ts type exclude = string | Array<string>; ``` - Default: `'node_modules'` Specify the files and/or directories to exclude. Must be relative to `options.context`. ### `resourceQueryExclude` - Type: ```ts type resourceQueryExclude = RegExp | Array<RegExp>; ``` - Default: `[]` Specify the resource query to exclude. ### `files` - Type: ```ts type files = string | Array<string>; ``` - Default: `null` Specify directories, files, or globs. Must be relative to `options.context`. Directories are traversed recursively looking for files matching `options.extensions`. File and glob patterns ignore `options.extensions`. ### `fix` - Type: ```ts type fix = boolean; ``` - Default: `false` Will enable [ESLint autofix feature](https://eslint.org/docs/developer-guide/nodejs-api#-eslintoutputfixesresults). **Be careful: this option will change source files.** ### `formatter` - Type: ```ts type formatter = string| ( results: Array<import('eslint').ESLint.LintResult>, data?: import('eslint').ESLint.LintResultData | undefined ) => string ``` - Default: `'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](https://eslint.org/docs/user-guide/formatters/). ### `lintDirtyModulesOnly` - Type: ```ts type lintDirtyModulesOnly = boolean; ``` - Default: `false` Lint only changed files, skip lint on start. ### `threads` - Type: ```ts type threads = boolean | number; ``` - Default: `false` Will run lint tasks across a thread pool. The pool size is automatic unless you specify a number. ### Errors and Warning **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: #### `emitError` - Type: ```ts type emitError = boolean; ``` - Default: `true` The errors found will always be emitted, to disable set to `false`. #### `emitWarning` - Type: ```ts type emitWarning = boolean; ``` - Default: `true` The warnings found will always be emitted, to disable set to `false`. #### `failOnError` - Type: ```ts type failOnError = boolean; ``` - Default: `true` Will cause the module build to fail if there are any errors, to disable set to `false`. #### `failOnWarning` - Type: ```ts type failOnWarning = boolean; ``` - Default: `false` Will cause the module build to fail if there are any warnings, if set to `true`. #### `quiet` - Type: ```ts type quiet = boolean; ``` - Default: `false` Will process and report errors only and ignore warnings, if set to `true`. #### `outputReport` - Type: ```ts type outputReport = | boolean | { filePath?: string | undefined; formatter?: | ( | string | (( results: Array<import('eslint').ESLint.LintResult>, data?: import('eslint').ESLint.LintResultData | undefined, ) => string) ) | undefined; }; ``` - Default: `false` Write 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. ## Changelog [Changelog](CHANGELOG.md) ## License [MIT](./LICENSE) [npm]: https://img.shields.io/npm/v/eslint-webpack-plugin.svg [npm-url]: https://npmjs.com/package/eslint-webpack-plugin [node]: https://img.shields.io/node/v/eslint-webpack-plugin.svg [node-url]: https://nodejs.org [tests]: https://github.com/webpack-contrib/eslint-webpack-plugin/workflows/eslint-webpack-plugin/badge.svg [tests-url]: https://github.com/webpack-contrib/eslint-webpack-plugin/actions [cover]: https://codecov.io/gh/webpack-contrib/eslint-webpack-plugin/branch/master/graph/badge.svg [cover-url]: https://codecov.io/gh/webpack-contrib/eslint-webpack-plugin [discussion]: https://img.shields.io/github/discussions/webpack/webpack [discussion-url]: https://github.com/webpack/webpack/discussions [size]: https://packagephobia.now.sh/badge?p=eslint-webpack-plugin [size-url]: https://packagephobia.now.sh/result?p=eslint-webpack-plugin