Trying to collect some data: what package that you know/maintain have transitioned to shipping ESM-only/ESM-first after it's unblocked by the support of require(esm)? Any tips/experiences to share?
Comments
Log in with your Bluesky account to leave a comment
I probably wasn't unblocked in a technical sense, my mind was unblocked though. Published 29 of my packages as ESM-only since require(esm) was shipped. 5 today. 9 to go!
There's a package suite that I love, but it's still written in CJS, and what's holding maintainers back from adopting ESM is that there would be breaking changes.
REF: https://github.com/PrismarineJS/node-vec3/pull/53
Vite 7 (to be released in ~2 weeks) will be distributed as ESM-only, unblocked by require(esm). We decided to bump node versions to 20.19+, 22.12+ to have it unflagged. Here is @sapphi.red's PR removing the bits of CJS we were still shipping.
Comments
https://github.com/MatteoGabriele/vue-gtag
https://github.com/MatteoGabriele/vue-progressive-image
cc: @pi0.io
One big blocker is still few weeks till CI providers get rid of 18 🪦
REF: https://github.com/PrismarineJS/node-vec3/pull/53
https://jsr.io/@augustinmauroy
https://jsr.io/@am
- various ESLint plugins
- parse5 (unreleased)
and a bunch more.
its been pretty smooth sailing. quite a few libs are still hesitant because they want to support <20 though
the only people who wouldn't be able to upgrade are those with a CJS lint config on <20
but they can just use a .mjs config without having to move to `type: module`