~/talk

You don't know ESM (look ma', no transpiling!)

Talkat UtahJS Conf 2025 · on Friday, 2025-09-12· [javascript]
name:AJ ONeal
links:none on file
slides:none on file

ESM is actually usable in 2025 because browsers standardized module specifiers in March 2023 and Node backported top-level await fixed in Node v22 (Dec 2024), so real package publishing finally works. Node/browser resolution now relies on import maps drive package resolution and package.json "imports" and "exports" fields; npm packages must include both default and named exports for interop. Avoid "scopes", avoid top-level await in published packages (use an init function), update jsconfig/tsconfig to ES2022 + "nodeNext", and use import.meta.url instead of __dirname.

AI-written summary · about

  1. 0:00Introduction and speaker intro
  2. 1:57ESM breakthrough in 2025
  3. 3:40What counts as JavaScript
  4. 6:10Local file modules explained
  5. 8:38Publishing packages as ESM
  6. 10:25Import map and package.json
  7. 13:59CommonJS vs ESM differences
  8. 15:23Common pitfalls and workarounds
  9. 17:11Conclusion and future of JavaScript
~/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.