← 文章 / 开源项目
InfoQ 1小时前 · 2026-08-11 15:12:26 · 0 阅读

eslint-rspack-plugin 5.0.0 以纯 ESM 包的形式发布,与 Rstack 生态系统保持一致

eslint-rspack-plugin(该插件在 Rspack 编译过程中执行 ESLint 检查)发布 5.0.0 版本。此次发布采用了纯 ESM 包的形式,可以与更广泛的 Rstack 生态系统更好地保持一致。

5.0.0 版本的主要变化在于,eslint-rspack-plugin 现在以纯 ESM 包的形式发布,其 CommonJS 构建版本已被移除。此举与 Rspack 2.0 的做法一致,后者已经将其核心包重新发布为纯 ESM 包,并弃用了 CommonJS 构建版本,使得模块加载更加一致,并且更符合当前 Node.js 的惯例。由于 Node.js 20 及更高版本已经可以通过 require(esm) 加载 ESM 模块,所以在实际的应用中,大多数通过 JavaScript API 使用该插件的项目几乎不会受到影响,也不需要修改代码。

从功能上讲,该插件仍然会在构建过程中运行 ESLint,但在监听模式下,它只会对 Rspack 修改过的文件重新运行 ESLint。它最初是从 eslint-webpack-plugin 生成的分支,所以对于它的配置界面, webpack 用户会感到很熟悉。典型的配置方式是在 Rspack 配置文件中注册该插件。

5.x 系列中引入的选项包括:默认启用、可以缩短执行时间的缓存、可在经典 eslintrc 格式与 ESLint 新增的 flat 配置之间切换的 configType 开关、用于在线程池中运行代码检查任务的 threads,以及 lintAllFiles 选项。该选项会对所有匹配的文件进行代码检查,而不仅仅是依赖关系图中的文件。最后一个选项针对多环境 Rsbuild 和 Rspack 构建。在这些场景中,如果分别对客户端和服务器端进行检查,则可能会跳过某些文件。

该项目的 README 文件提醒说:“不使用 eslint-rspack-plugin 可能会更高效,因为在构建过程中运行 ESLint 可能会导致构建时间变长”,并建议改用单独的代码检查命令。同样的指导建议也出现在了 @rsbuild/plugin-eslint 中(该插件在内部封装了此插件),以及 Rsbuild 常见问题解答中,其中指出,为了“保障编译性能”,Rsbuild 默认不会在构建过程中运行 ESLint。

这一注意事项反映了生态系统中广泛存在的一个转变。Rstack 团队现在已经发布 Rslint。这是一款以 TypeScript 为核心、兼容 ESLint、用 Go 语言编写且基于 typescript-go 的代码检查工具。据称其代码检查速度比传统的 ESLint 配置快 20 到 40 倍。对于追求构建速度的团队而言,运行一个快速的独立代码检查工具——无论是通过专用脚本运行 ESLint,还是使用 Rslint 等替代方案——都比在打包工具内部进行代码检查显得更有优势。

从 4.x 系列升级的开发者应针对其工具链测试纯 ESM 变更,并在可行的情况下通过 configType: ‘flat’ 采用 ESLint 的 flat 配置。有关底层 ESM 迁移的相关说明,请查阅 Rspack 2.0 发布说明

eslint-rspack-plugin 采用 MIT 许可证开源,可通过 npm 安装。

原文链接:https://www.infoq.com/news/2026/08/eslint-rspack-plugin-5/

原始来源: InfoQ

评论 (0)