Node 20 gains require(esm) support by default

March 18, 2025 By Mark Otto 0

Node.js Weekly

Node v23.10.0 (Current) Released — Node gains a new --experimental-config-file option for writing a JSON-based config file that contains options that would otherwise litter your command line flags – ideal for configuring the test runner, say.

Antoine du Hamel

Node v20.19.0 (LTS) Released with require(esm) — Node v20 is in maintenance mode, which usually means no new features, but it lands a significant one here: support for require(esm) enabled by default. This means all Node v20+ releases now support loading native ES modules with require out of the box. Ideal if you have dependencies to update and you’re still on v20.

Marco Ippolito

💡 A year ago, Node contributor Joyee Cheung wrote about the technical aspects of how require(esm) support came together.

🛠 Code & Tools

OTPAuth: One Time Password (HOTP/TOTP) Library — When you log in to a site with 2FA and you’re asked for six digits from your authentication app, that’s a Time-based One-Time Password (or TOTP). This library for Node, Deno, Bun and the browser lets you work with both TOTPs and HOTPs (HMAC-based OTPs) from JavaScript.

Héctor Molinero Fernández

📰 Classifieds

🇫🇷 The Node & Conquer Conference. In person, in Paris. 4 April 2025. Come learn how to best run Node.js at scale. Sign up here.


👀 Give your eyes a break! MonoLisa is a font optimized for developers. Try now.

📢  Elsewhere in JavaScript

A quick roundup of some other interesting stories in the broader JavaScript landscape, in case you’ve missed them: