Modernizing packages to ESM
Mark Erikson (web dev professor/historian, OSS Maintainer & engineer at Replay) joins us to talk about the shift from CommonJS to ESM. We discuss the history of module patterns in JS and the grueling effort to push the world’s biggest developer ecosystem forward. Get ready to go to school kids, this one’s deep!
Mark Erikson (web dev professor/historian, OSS Maintainer & engineer at Replay) joins us to talk about the shift from CommonJS to ESM. We discuss the history of module patterns in JS and the grueling effort to push the world’s biggest developer ecosystem forward. Get ready to go to school kids, this one’s deep!
Changelog++ members get a bonus 5 minutes at the end of this episode and zero ads. Join today!
Sponsors:
- Fastly – Our bandwidth partner. Fastly powers fast, secure, and scalable digital experiences. Move beyond your content delivery network to their powerful edge cloud platform. Learn more at fastly.com
- Fly.io – The home of Changelog.com — Deploy your apps and databases close to your users. In minutes you can run your Ruby, Go, Node, Deno, Python, or Elixir app (and databases!) all over the world. No ops required. Learn more at fly.io/changelog and check out the speedrun in their docs.
- Typesense – Lightning fast, globally distributed Search-as-a-Service that runs in memory. You iterlly can’t get any faster!
- Changelog News – A podcast+newsletter combo that’s brief, entertaining & always on-point. Subscribe today.
Featuring:
Show Notes:
- My Experience Modernizing Packages to ESM - Mark’s epic blog post
- History and Timeline of ES Modules
- Node API Reference for ESM
- Andrew Branch’s WIP TypeScript module processing documentation
- Sindre Sorhus: Pure ESM packages
- Modern Guide to Packaging a JS Library
- Guide for shipping ESM and CJS in one Package
Something missing or broken? PRs welcome!
Timestamps:
(00:00) - It's party time, y'all
(00:56) - Welcoming back Mark
(03:28) - A history lesson
(10:36) - UMDs were hot ...
(11:49) - History continued
(16:59) - Enter TypeScript
(21:28) - Publish as a Service
(22:51) - Common pain points
(31:30) - Sponsor: Changelog News
(32:42) - Recapping the post
(44:22) - Running multiple tests
(51:51) - We need standards
(59:07) - Parting thoughts
(1:03:03) - Closing time
(1:04:06) - Next up on the pod (Changelog++!)