Software 44029 Published by

The latest version of Node.js, 25.4.0, has been released with several notable improvements and enhancements to various parts of the platform. The update includes new flags for command-line users to manage require() calls, as well as significant updates to modules such as crypto, events, and process. Subpath imports have also been added, allowing developers to import components from within their project itself without complexity. Additionally, several util functions have been made stable or introduced, including convertProcessSignalToExitCode and improvements to the module's compile cache.



Node.js 25.4.0 (Current) released

Node.js has just been updated to version 25.4.0, the current release. This update brings a range of notable improvements and enhancements to various parts of the platform.

This isn't just another minor tweak; it brings along some noteworthy upgrades across the board. Command-line users now have two fresh flags to play with: --require-module and --no-require-module. These let you manage how Node handles require() calls, which is useful depending on your setup or environment needs.

Digging into modules themselves, the crypto part has been refreshed with new root certificates pulled straight from NSS 3.117. That should help keep everyone secure against the newest online threats.

The documentation team put some effort in too. Two folks, Aviv Keller and Gürgün Dayıoğlu, got added as collaborators. They also went through --build-snapshot and --build-snapshot-config, marking them stable now so their purpose is clear-cut without question marks hanging over them.

There are solid updates within Node's core event handling, too. The events.listenerCount() function got a role rep change to support EventTargets generally, not just the old way it was used with DOM elements back when that was its main focus. This should make tracking down specific types of events easier for apps.

On another note, http.setGlobalProxyFromEnv() has officially become stable. So developers can reliably set their app's proxy based on environment variables without worrying about features flipping out from under them mid-project.

require()'s ESM flag got marked official too. And the entire module compilation cache is now considered stable as well, which means you can depend on it consistently.

Subpath imports are another big win. If your modules utilize paths beginning with #/, Node will now allow you to import components from within the project itself, significantly simplifying the process.

The process module has some subtle but helpful tweaks too. AsyncLocalStorage is kept around even when used in queueMicrotask handlers unless there's absolutely no need to free it up, with smart background optimization happening quietly away. And the stream module avoids passing through readable.compose() output anymore because Readable.from can handle it directly now, likely giving performance a boost where needed.

Finally, check out the new util function: convertProcessSignalToExitCode! It simplifies mapping incoming process signals to corresponding exit codes, something developers might otherwise have to cobble together.

Node.js — Node.js 25.4.0 (Current)

Node.js:registered: is a free, open-source, cross-platform JavaScript runtime environment that lets developers create servers, web apps, command line tools and scripts.

Node.js — Node.js 25.4.0 (Current)