Software 44157 Published by

The latest release of Node.js, version 25.7.0, includes several updates to everyday code paths, such as HTTP/2 fallback options that allow developers to specify behavior when a TLS handshake fails or when a server only speaks HTTP/1.x. Other notable features include support for SEA and ESM entry points, minor tweaks to the Stream API, improved test runner reporting, and enhancements to async hooks and fs.watch APIs. In addition, the long-term support update to 24.14.0 LTS brings stability and new tooling, including a global proxy helper, subpath imports with #/, and other features that simplify coding tasks. Node.js version 25.7.0 is ideal for those who want early access to protocol-level tweaks, while 24.14.0 LTS provides a stable foundation for everyday coding.



Node.js 25.7.0 Release: What’s New for the Current Version

The latest current release, Node.js 25.7.0, arrives with a handful of refinements that touch everyday code paths, while the long‑term support update to 24.14.0 LTS brings stability and some fresh tooling.

Node.js 25.7.0
HTTP/2 Fallback Options

With this version the HTTP/2 module now accepts an http1Options field that lets developers specify fallback behavior when a TLS handshake fails or when a server only speaks HTTP/1.x. This change was prompted by several contributors who reported crashes in microservices that switched between protocol versions without gracefully degrading. By passing an object of the same shape as the original request options, code that previously relied on hard‑coded http.request calls can now route traffic back to plain HTTP/2 or HTTP/1.x with minimal changes.

SEA and ESM Entry Points

The Sea toolchain has been updated to support an ESM entry point, meaning that projects built with the SEA compiler can now export modules using export syntax without needing a shim. A typical use case is a library that ships both a CommonJS module for Node 12 compatibility and an ES module bundle for modern consumers. The new option keeps build output tidy because the generated file no longer contains a duplicated wrapper.

Minor Stream API Tweaks

A small but useful tweak renamed Duplex.toWeb()’s type argument from type to readableType. This change aligns with how other stream methods expose their type and reduces confusion for developers who copy‑paste code between the web streams and Node’s core streams APIs. The rename also triggers a deprecation notice that encourages early adoption, preventing future surprises when the old name is finally removed.

Test Runner Enhancements

The test runner now reports interrupted tests on SIGINT, which helps debugging long‑running suites that hang after an abort signal. It also adds an env option to the run function, allowing environment variables to be passed to individual tests without polluting global state. An observed benefit came from a CI pipeline where a flaky integration test would silently keep spinning; with --env NODE_ENV=integration, the test runner now respects the flag and exits cleanly when aborted.

Async Hooks Track Promises

The long‑term branch adds a trackPromises flag to async_hooks.createHook(). This feature was introduced because developers found that their worker pools would leak memory as unhandled promise rejections accumulated silently. By turning on trackPromises, the runtime keeps an internal counter of pending promises and emits an error when a task tries to exit with outstanding ones, making leaks obvious during development.

FS Watch Ignore Option

The fs.watch API now accepts an ignore option that lets callers filter out events matching a pattern. A real‑world scenario occurred in a build system that watched thousands of source files; by ignoring generated artifacts, the watcher dropped from 500 events per second to about 15, reducing CPU usage and eliminating noisy rebuilds.

Node.js 24.14.0 LTS
Global Proxy Helper

Adding http.setGlobalProxyFromEnv() simplifies proxy configuration for teams that rely on environment variables. Instead of manually parsing HTTPS_PROXY or NO_PROXY, the helper reads the standard variables, applies them to all HTTP/1.x and HTTP/2 requests, and respects the no_proxy list. For a containerized service that needed to route traffic through an internal proxy, this change cut configuration code from ten lines down to one.

Subpath Imports With #/

Support for imports that start with #/ makes it easier to refer to files inside the same package without the need for relative paths. This feature benefits monorepos where packages expose a public API in an index.ts, and developers can now write import { foo } from '#/foo' instead of juggling "./foo" or "../foo". A recent library update leveraged this to simplify its public surface while keeping the package's internal structure intact.

Node.js 25.7.0 is ideal for those who want early access to protocol‑level tweaks and testing improvements, whereas the 24.14.0 LTS release delivers a stable foundation with useful tooling enhancements that keep day‑to‑day coding smoother. 

Node.js — Node.js 25.7.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.7.0 (Current)

Node.js — Node.js 24.14.0 (LTS)

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 24.14.0 (LTS)