Change8

Migrating to Node.js v24.0.0

Version v24.0.0 introduces 5 breaking changes. This guide details how to update your code.

Released: 5/6/2025

5
Breaking Changes
6
Migration Steps
12
Affected Symbols

⚠️ Check Your Code

If you use any of these symbols, you need to read this guide:

AsyncLocalStorageURLPatternurl.parsetls.createSecurePairSlowBufferREPLZlibchild_process.spawnchild_process.execFileFloat16ArrayError.isErrorRegExp.escape

Breaking Changes

Issue #1

Support for MSVC has been removed for Windows compilation. Developers must now use ClangCL to compile Node.js on Windows.

Issue #2

The deprecated tls.createSecurePair API has been removed. Applications using this must migrate to tls.Socket.

Issue #3

AsyncLocalStorage now uses AsyncContextFrame by default, which may affect advanced asynchronous tracking implementations.

Issue #4

The experimental permission flag has changed from --experimental-permission to --permission.

Issue #5

The test runner now automatically waits for subtests; manual awaiting of test promises may lead to unexpected behavior if not adjusted.

Migration Steps

  1. 1
    Switch Windows build toolchains from MSVC to ClangCL.
  2. 2
    Replace url.parse() calls with 'new URL()'.
  3. 3
    Update scripts using --experimental-permission to use --permission.
  4. 4
    Ensure Zlib and REPL instances are created using the 'new' keyword.
  5. 5
    Remove manual awaits for subtests in the native test runner if they cause logic conflicts.
  6. 6
    Replace tls.createSecurePair with tls.Socket.

Release Summary

Node.js 24 updates the V8 engine to 13.6 and npm to 11, while promoting URLPattern to a global and stabilizing the Permission Model flag. It introduces several runtime deprecations for legacy APIs and mandates ClangCL for Windows compilation.

Need More Details?

View the full release notes and all changes for Node.js v24.0.0.

View Full Changelog