eslint-rspack-plugin, the plugin that runs ESLint checks during Rspack compilation, has released version 5.0.0, shipping as a pure ESM package and realigning the tool with the wider Rstack ecosystem.
The headline change in 5.0.0 is that eslint-rspack-plugin is now published as a pure ESM package, with its CommonJS build removed. The move mirrors Rspack 2.0, which republished its core packages as pure ESM and dropped their CommonJS builds to make module loading more consistent and better aligned with current Node.js practices. Because Node.js 20 and later can already load ESM modules using require(esm), most projects consuming the plugin through the JavaScript API should see little practical impact and need no code changes.
Functionally the plugin continues to run ESLint as part of the build and, in watch mode, re-runs ESLint only on the files Rspack has changed. It was originally forked from eslint-webpack-plugin, so its configuration surface feels familiar to webpack users. A typical setup registers the plugin in the Rspack config file.
Options carried into the 5.x line include caching, which is on by default to reduce execution time, a configType switch between the classic eslintrc format and ESLint's newer flat config, threads for running lint tasks across a thread pool, and lintAllFiles, which lints every matching file rather than only those in the dependency graph. That last option targets multi-environment Rsbuild and Rspack builds, where separate client and server passes would otherwise skip files:
The project README cautions that "you may find it more efficient to avoid using the eslint-rspack-plugin, as running ESLint during the build can lead to longer build times," recommending a separate lint command instead. The same guidance appears in @rsbuild/plugin-eslint, which wraps this plugin internally, and in the Rsbuild FAQ, which notes that Rsbuild does not run ESLint during builds by default "to protect compilation performance."
That caveat reflects a broader shift in the ecosystem. The Rstack team now ships Rslint, a TypeScript-first, ESLint-compatible linter written in Go and powered by typescript-go, which it claims delivers 20 to 40 times faster linting than traditional ESLint setups. For teams chasing build speed, running a fast standalone linter, whether ESLint through a dedicated script or an alternative such as Rslint, increasingly looks preferable to linting inside the bundler itself.
Developers upgrading from the 4.x line should test the pure ESM change against their toolchain and, where practical, adopt ESLint's flat config through configType: 'flat'. Migration context for the underlying ESM shift is documented in the Rspack 2.0 release notes.
eslint-rspack-plugin is open source under the MIT license and can be installed from npm.