~/talk

Shipping Node.js packages in 2025

Talkat Nordic.js 2025 · 2025-10-02..10-03· [nodejs]
slides:none on file

Node now makes a concrete interoperability claim: require can load ESM after an implementation landed behind a flag in Node 22, unflagged in 23 and backported to 20 LTS, and it actually works so packages start migrating. Ecosystem numbers: >80% of high‑impact packages still ship CommonJS, only ~6/5000 use top‑level await. Practical tools and fixes: TypeScript 5.7 rewriteRelativeImportExtensions, process.getBuiltinModule and createRequire. Real win: Storybook 10 sheds 15% of node_modules by going ESM‑only.

AI-written summary · about

  1. 0:00Modern Node.js package shipping
  2. 1:10Node.js package formats history
  3. 3:20ESM vs CommonJS interoperability
  4. 8:17require() loads ESM in Node.js
  5. 10:27require() ESM feasibility
  6. 13:20Node.js LTS supports require() ESM
  7. 14:43Dual packages unnecessary
  8. 15:03Migrate dual packages to ESM
  9. 19:58package.json for ESM-only
  10. 20:40Migrate full ESM packages
  11. 22:27Migrate CommonJS to ESM
  12. 26:26Default and named exports in ESM
  13. 27:30Dynamic loading in ESM
  14. 29:33Best practices for Node.js packages
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.