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
⚠️ Check Your Code
If you use any of these symbols, you need to read this guide:
AsyncLocalStorageURLPatternurl.parsetls.createSecurePairSlowBufferREPLZlibchild_process.spawnchild_process.execFileFloat16ArrayError.isErrorRegExp.escapeBreaking 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
- 1Switch Windows build toolchains from MSVC to ClangCL.
- 2Replace url.parse() calls with 'new URL()'.
- 3Update scripts using --experimental-permission to use --permission.
- 4Ensure Zlib and REPL instances are created using the 'new' keyword.
- 5Remove manual awaits for subtests in the native test runner if they cause logic conflicts.
- 6Replace 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