or run

npx @tessl/cli init
Log in

Version

Tile

Overview

Evals

Files

docs

index.mdoptions.md
tile.json

tessl/npm-eslint-webpack-plugin

A webpack plugin that integrates ESLint into the build process to lint JavaScript code with extensive configuration options, caching, and multi-threading support.

Workspace
tessl
Visibility
Public
Created
Last updated
Describes
npmpkg:npm/eslint-webpack-plugin@5.0.x

To install, run

npx @tessl/cli install tessl/npm-eslint-webpack-plugin@5.0.0

index.mddocs/

ESLint Webpack Plugin

ESLint Webpack Plugin integrates ESLint into the Webpack build process to automatically lint JavaScript code during compilation. It provides comprehensive linting capabilities with advanced features including caching, multi-threading support, custom formatters, and flexible error/warning handling.

Package Information

  • Package Name: eslint-webpack-plugin
  • Package Type: npm
  • Language: JavaScript/TypeScript
  • Installation: npm install eslint-webpack-plugin --save-dev

Core Imports

const ESLintPlugin = require('eslint-webpack-plugin');

ESM import:

import ESLintPlugin from 'eslint-webpack-plugin';

TypeScript:

import ESLintPlugin from 'eslint-webpack-plugin';

Basic Usage

const ESLintPlugin = require('eslint-webpack-plugin');

module.exports = {
  // ... other webpack configuration
  plugins: [
    new ESLintPlugin({
      extensions: ['js', 'mjs', 'jsx', 'ts', 'tsx'],
      fix: true,
    }),
  ],
};

Architecture

ESLint Webpack Plugin is built around several key components:

  • Plugin Class: Main ESLintWebpackPlugin class that implements the webpack plugin interface
  • Options System: Comprehensive configuration system with both plugin-specific and ESLint-specific options
  • Caching Layer: Intelligent caching system to optimize repeated builds
  • Multi-threading: Jest worker-based parallel processing for improved performance
  • Webpack Integration: Deep integration with webpack's compilation hooks and lifecycle

Capabilities

ESLint Webpack Plugin Class

Main plugin class that integrates ESLint into the webpack build process with extensive configuration options and performance optimizations. This is the default export of the package.

export = ESLintWebpackPlugin;

declare class ESLintWebpackPlugin {
  constructor(options?: Options);
  key: string;
  options: PluginOptions;
  apply(compiler: Compiler): void;
  run(
    compiler: Compiler,
    options: Omit<Options, 'resourceQueryExclude'> & {
      resourceQueryExclude: RegExp[];
    },
    wanted: string[],
    exclude: string[]
  ): Promise<void>;
  getContext(compiler: Compiler): string;
}

type Compiler = import('webpack').Compiler;

Plugin Configuration

Comprehensive configuration system supporting both plugin-specific options and all ESLint options with intelligent defaults and validation.

interface Options extends PluginOptions, ESLintOptions {}

interface PluginOptions {
  context?: string;
  emitError?: boolean;
  emitWarning?: boolean;
  eslintPath?: string;
  exclude?: string | string[];
  extensions?: string | string[];
  failOnError?: boolean;
  failOnWarning?: boolean;
  files?: string | string[];
  fix?: boolean;
  formatter?: string | FormatterFunction;
  lintDirtyModulesOnly?: boolean;
  quiet?: boolean;
  outputReport?: OutputReport;
  threads?: number | boolean;
  resourceQueryExclude?: RegExp | RegExp[];
  configType?: string;
}

Configuration Options

Types

interface OutputReport {
  filePath?: string;
  formatter?: string | FormatterFunction;
}

type FormatterFunction = (results: LintResult[]) => string;

type ESLintOptions = import('eslint').ESLint.Options;
type LintResult = import('eslint').ESLint.LintResult;