Research
Security News
Malicious npm Packages Inject SSH Backdoors via Typosquatted Libraries
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
eslint-webpack-plugin
Advanced tools
The eslint-webpack-plugin is a plugin for webpack that utilizes ESLint to identify and report on patterns found in ECMAScript/JavaScript code. It is intended to help developers adhere to a consistent code style and find and fix problems in their JavaScript code.
Linting on Build
Automatically lints your JavaScript files when you run your webpack build. The 'options' object can be used to customize the behavior of the plugin.
const ESLintPlugin = require('eslint-webpack-plugin');
module.exports = {
// ... other webpack configuration settings ...
plugins: [new ESLintPlugin(options)],
};
Automatic Fixing
The plugin can be configured to automatically fix certain issues in your code as it lints. This is done by setting the 'fix' option to true.
new ESLintPlugin({ fix: true })
Customizable Linting
You can customize which files are linted, where the linting occurs, whether to cache results, and whether to fail the build on a lint error. You can also enable multi-threaded linting for performance.
new ESLintPlugin({
extensions: ['js', 'jsx'],
exclude: ['node_modules'],
context: 'src',
cache: true,
cacheLocation: 'path/to/cache',
failOnError: false,
threads: true,
})
The ts-loader package is a TypeScript loader for webpack. It is similar to eslint-webpack-plugin in that it integrates with webpack to process files, but it focuses on compiling TypeScript files rather than linting JavaScript files.
This plugin is similar to eslint-webpack-plugin but is designed for linting CSS and SCSS files with stylelint instead of linting JavaScript with ESLint.
The prettier-webpack-plugin is a webpack plugin that formats your code using Prettier. While eslint-webpack-plugin focuses on identifying and reporting code quality issues, prettier-webpack-plugin focuses on code formatting and style.
This version of eslint-webpack-plugin only works with webpack 5. For the webpack 4, see the 2.x branch.
This plugin uses eslint
to find and fix problems in your JavaScript code
To begin, you'll need to install eslint-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 config. For example:
const ESLintPlugin = require('eslint-webpack-plugin');
module.exports = {
// ...
plugins: [new ESLintPlugin(options)],
// ...
};
You can pass eslint 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
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.
cache
type cache = boolean;
true
The cache is enabled by default to decrease execution time.
cacheLocation
type cacheLocation = string;
node_modules/.cache/eslint-webpack-plugin/.eslintcache
Specify the path to the cache location. Can be a file or a directory.
configType
type configType = 'flat' | 'eslintrc';
eslintrc
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.
This configuration format being considered as experimental, it is not exported in the main ESLint module in ESLint 8. You need to set your
eslintPath
toeslint/use-at-your-own-risk
for this config format to work.
context
type context = string;
compiler.context
A string indicating the root of your files.
eslintPath
type eslintPath = string;
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 extensions = string | Array<string>;
'js'
Specify extensions that should be checked.
exclude
type exclude = string | Array<string>;
'node_modules'
Specify the files and/or directories to exclude. Must be relative to options.context
.
resourceQueryExclude
type resourceQueryExclude = RegExp | Array<RegExp>;
[]
Specify the resource query to exclude.
files
type files = string | Array<string>;
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 fix = boolean;
false
Will enable ESLint autofix feature.
Be careful: this option will change source files.
formatter
type formatter = string| (
results: Array<import('eslint').ESLint.LintResult>,
data?: import('eslint').ESLint.LintResultData | undefined
) => string
'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.
lintDirtyModulesOnly
type lintDirtyModulesOnly = boolean;
false
Lint only changed files, skip lint on start.
threads
type threads = 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 using emitError
or emitWarning
options:
emitError
type emitError = boolean;
true
The errors found will always be emitted, to disable set to false
.
emitWarning
type emitWarning = boolean;
true
The warnings found will always be emitted, to disable set to false
.
failOnError
type failOnError = boolean;
true
Will cause the module build to fail if there are any errors, to disable set to false
.
failOnWarning
type failOnWarning = boolean;
false
Will cause the module build to fail if there are any warnings, if set to true
.
quiet
type quiet = boolean;
false
Will process and report errors only and ignore warnings, if set to true
.
outputReport
type outputReport =
| boolean
| {
filePath?: string | undefined;
formatter?:
| (
| string
| ((
results: Array<import('eslint').ESLint.LintResult>,
data?: import('eslint').ESLint.LintResultData | undefined,
) => string)
)
| undefined;
};
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.
FAQs
A ESLint plugin for webpack
We found that eslint-webpack-plugin demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 4 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
Security News
MITRE's 2024 CWE Top 25 highlights critical software vulnerabilities like XSS, SQL Injection, and CSRF, reflecting shifts due to a refined ranking methodology.
Security News
In this segment of the Risky Business podcast, Feross Aboukhadijeh and Patrick Gray discuss the challenges of tracking malware discovered in open source softare.