Node.js 23.0+ Knowledge Patch
Claude's baseline knowledge covers Node.js through 22.x LTS. This patch captures post-cutoff changes from Node.js 23.0.0 (October 2024) through the 24.x line, plus later 24.x changelog additions that materially affect modern Node.js usage.
Source: Node.js releases at https://nodejs.org/en/blog/release
Quick Reference
| Area | Version | What changed | Details |
|------|---------|--------------|---------|
| Module loading | 23.0 | require(esm) enabled by default | Module System |
| CLI | 23.0 | node --run marked stable | CLI and Testing |
| Testing | 23.x-24.x | coverage globs, TS globs, env, expected failures | CLI and Testing |
| Async context | 24.0 | AsyncLocalStorage defaults to AsyncContextFrame | Runtime APIs |
| Web platform | 24.0 | URLPattern exposed globally | Runtime APIs |
| Permissions | 24.0+ | --permission replaces --experimental-permission | Runtime APIs |
| Process/runtime | 23.11+ | process.execve() and related runtime additions | Runtime APIs |
Key Pragmas
- Prefer
require(esm)support and the"module-sync"export condition when publishing dual-mode packages. - Treat
URLPatternas globally available in Node.js 24+; avoid compatibility wrappers there. - Use
node --runand modernnode --testcapabilities before reaching for ad hoc shell wrappers. - Write new permission-model examples with
--permission, not--experimental-permission.
Example
// Node.js 24+: URLPattern is global, no import required.
const route = new URLPattern({ pathname: "/users/:id" });
const match = route.exec("https://example.com/users/42");
console.log(match.pathname.groups.id); // "42"
Reference Index
- Module System —
require(esm), namespace return shape, top-levelawaitcaveat,"module-sync" - Runtime and Web APIs —
AsyncContextFrame, globalURLPattern, permission model updates,process.execve(),http.setGlobalProxyFromEnv() - CLI and Testing — stable
node --run, test-runner glob/config updates, expected failures, environment injection