The JavaScript ecosystem is moving towards a standardized module system, and Node.js is evolving to aid its adoption. What actually happens when Node.js loads an ES module today? This talk walks the full pipeline - resolution, loading, parsing, compilation, linking, instantiation, and evaluation. We will cover how the work is split between V8 and Node.js, where Node.js differs from browsers and bundlers, and the recent changes in Node.js that unlocks new patterns for better interop, performance, and customization in ESM. You will leave with a clearer mental model of how ESM is loaded in Node.js, shed obsolete knowledge and misconceptions, understand where to look when your modules don't work, and learn about the new capabilities that will help you write, run, and share ESM code better on Node.js today.
This talk has been presented at JSNation 2026, check out the latest edition of this JavaScript Conference.




















