The decision by the eslint-rspack-plugin team to ship version 5.0.0 as a pure ESM package is a clear signal that the JavaScript ecosystem is finally ready to stop straddling the fence. For years, dual-package support has felt like a polite fiction, a way to keep CommonJS projects alive while pretending the future had already arrived. This move, aligning the plugin with the broader Rspack ecosystem, is a decisive step toward that future, and it deserves a closer look than the usual release notes might suggest. It is not about being first to a trend; it is about committing to a direction with confidence, and that is something we can respect.
For our readers, the practical implications are immediate and worth weighing carefully. If your project is already ESM-only, this change is likely invisible, a quiet cleanup of legacy baggage. But if you are maintaining a CommonJS build or working in a mixed environment, this is where you need to pause. The removal of the CommonJS build is not a minor detail; it is a hard requirement to modernize your own toolchain. The plugin still integrates ESLint into the build process, but the team's advice to consider separate linting commands for efficiency is telling. That is not a throwaway suggestion. It is an admission that bundling linting into the build pipeline, while convenient, can become a bottleneck. We would tell a reader asking about this: treat this as an opportunity to re-evaluate your workflow, not a hurdle to overcome. Run linting as a pre-commit hook or a CI step, and let the build focus on what it does best. The speed gains from a pure ESM package are real, but they only matter if you are not forcing the tool to work against its own grain.
What stands out here is the alignment with the Rspack ecosystem, not just as a technical detail, but as a philosophy. Rspack has been positioning itself as a faster, more efficient alternative, and shedding CommonJS is a deliberate act of simplification. It is a bet that the future of tooling is leaner, and that the cost of supporting the past is no longer worth paying. This is a different kind of messaging than what we often see, where projects cling to compatibility for as long as possible. The team is being honest about the trade-offs, and that honesty is refreshing. We would argue this is the right call, even if it stings for those left behind. The alternative, maintaining a dual build indefinitely, only drags down performance and complicates maintenance, a tax that users ultimately pay in slower builds and more complex codebases.
The open source nature of the project means this is not a corporate mandate; it is a community decision, and that makes the direction even more deliberate. The one thing to watch now is how the wider ecosystem responds. Will other plugins in the Rspack orbit follow suit, and will the tooling that supports them catch up? For a reader, the concrete takeaway is simple: if you are building with Rspack and have not yet migrated to ESM, version 5.0.0 is your cue to start planning that migration now. Not because you have to, but because the ecosystem is telling you where it is headed. The specific detail to watch is how the plugin's performance metrics change in real-world projects once the CommonJS path is gone. If the speed improvements are as significant as the move suggests, this will not just be a technical release; it will be a template for how other tools shed their legacy constraints.
