ESLint-Rspack-plugin(在Rspack编译过程中执行ESLint检查)发布了5.0.0版本。此次发布采用了纯ESM包的形式,与更广泛的Rstack生态系统保持一致。5.0.0版本的显著变化是,eslint-rspack-plugin现在以纯ESM包的形式发布,其CommonJS构建版本已被移除。此举与Rspack2.0的做法一致,后者已经将其核心包重新发布为纯ESM包,并弃用了CommonJS构建版本,使得模块加载更加一致,并且更符合当前Node.js的惯例。

--91likeyou---

从功能上讲,该插件仍然会在构建过程中运行 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 安装。

:

🔥 热词:#ESM · #eslint · #plugin · #rspack · #Rspack · #包的形式发布 · #Rstack · #ESLint