eslint-rspack-plugin
raw JSON → 4.4.1 verified Sat Apr 25 auth: no javascript
An ESLint plugin for Rspack, forked from eslint-webpack-plugin. Version 4.4.1 is current, with active maintenance and regular releases. It integrates ESLint into the Rspack build process, providing features like caching, config type detection (flat or eslintrc), and support for multiple file extensions. Key differentiators: automatic configType detection based on ESLint version, support for ESLint 8, 9, and 10 (peer dep ^8.0.0 || ^9.0.0 || ^10.0.0), and focused compatibility with Rspack. Alternatives: running ESLint separately via CLI or editor integration.
Common errors
error Error [ERR_REQUIRE_ESM]: require() of ES Module /path/to/eslint-rspack-plugin/dist/index.js from /path/to/rspack.config.js not supported. ↓
cause Using CommonJS require() to import an ESM-only package.
fix
Convert your config file to ESM: rename to .mjs or add "type": "module" in package.json, then use import ESLintPlugin from 'eslint-rspack-plugin';
error TypeError: ESLintPlugin is not a constructor ↓
cause Importing the default export incorrectly, e.g., using a named import.
fix
Use default import: import ESLintPlugin from 'eslint-rspack-plugin';
error Configuration for rule 'some-rule' is invalid: Value "error" should be one of 0, 1, 2. ↓
cause Using string severity ('error') in ESLint configuration when numeric values are expected, common with flat config without proper adapter.
fix
Ensure your ESLint config uses numeric severity (2 for error) or correct format. For flat config, use 'error' as string is valid, but this error appears if mixing formats.
error Error: ESLint configuration is invalid: "extensions" is not supported. ↓
cause Setting 'extensions' option in plugin while using flat config (configType: 'flat').
fix
Remove 'extensions' from plugin options and configure file extensions via ESLint's 'files' option in flat config.
Warnings
breaking Plugin is ESM-only. Node.js require() will throw ERR_REQUIRE_ESM. ↓
fix Convert to ESM (set "type": "module" in package.json or use .mjs extension) and use import syntax.
gotcha The 'configType' option must match the ESLint version: use 'eslintrc' for ESLint <9, 'flat' for ESLint >=9. Autodetection may pick wrong if ESLint version is ambiguous. ↓
fix Explicitly set configType to match your ESLint configuration format (eslintrc or flat).
gotcha The 'extensions' option only works with configType: 'eslintrc'. For flat config, use ESLint's 'files' option directly. ↓
fix When using flat config, specify files in ESLint configuration instead of plugin options.
deprecated The 'lintDirtyModulesOnly' option is deprecated and may be removed in a future version. Use 'lintAllFiles' instead. ↓
fix Replace lintDirtyModulesOnly with lintAllFiles: true if you want to lint all files.
gotcha Cache location default changed between versions. v4.4.0+ uses 'node_modules/.cache/eslint-rspack-plugin/.eslintcache'; older versions used a different path. ↓
fix Clear old cache directory if migrating from an older version, or set cacheLocation explicitly.
Install
npm install eslint-rspack-plugin yarn add eslint-rspack-plugin pnpm add eslint-rspack-plugin Imports
- ESLintPlugin wrong
const ESLintPlugin = require('eslint-rspack-plugin');correctimport ESLintPlugin from 'eslint-rspack-plugin'; - ESLintPluginOptions wrong
import ESLintPluginOptions from 'eslint-rspack-plugin';correctimport type { ESLintPluginOptions } from 'eslint-rspack-plugin'; - default export wrong
import { ESLintPlugin } from 'eslint-rspack-plugin';correctimport ESLintPlugin from 'eslint-rspack-plugin';
Quickstart
import ESLintPlugin from 'eslint-rspack-plugin';
export default {
plugins: [
new ESLintPlugin({
extensions: ['js', 'jsx', 'ts', 'tsx'],
exclude: 'node_modules',
cache: true,
eslintPath: 'eslint',
configType: 'flat',
}),
],
};