The Wire · Showcase
Node's compile cache turns read-only
By RepoJournal · Filed · About Node.js
Node is about to let you ship a compile cache that the runtime can only ever read, and it's the patch you've been waiting for.
Node's compile cache grows a read-only mode [1], so an ahead-of-time cache baked into an immutable package (an Electron asar, a read-only image) no longer forces a writable cache directory at runtime. The fs layer also fixes realpath on namespaced drive paths on Windows [2], where a probe for a namespaced drive root was dropping the trailing separator and hitting EISDIR. Streams get a fix for share() that prevents one consumer pull from eagerly draining the source while a slower consumer keeps the buffer full [3]. The experimental WebSocket flag is gone [4], so `--no-experimental-websocket` is no longer accepted, and the HTTP ConnectionsList swaps its two std::set instances for intrusive lists, cutting ~2.2% of CPU cycles off the hello-world hot path [5]. Meanwhile, amaro bumps actions/setup-node to v7.0.0, a major that adds cache keys as outputs [6], alongside routine CI hardening updates [7]. Quiet on the reliability desk, just a routine daily report [8].
One email a day. Unsubscribe in one click.
Keep up with Node.js in about 3 minutes a day: what actually shipped — the commits, pull requests, releases, and security advisories that matter.
One email a day. Unsubscribe in one click. Read a past issue →
Action items
- → Test your compile cache with the new read-only mode and switch to it for immutable packages nodejs/node [plan]
- → Verify your Windows fs.realpath calls against namespaced drive paths in your test matrix nodejs/node [plan]
- → Remove any use of --no-experimental-websocket from your scripts and docs nodejs/node [immediate]
- → Review share() paths for streaming behavior changes in your pipeline nodejs/node [monitor]
References
- [1] module: add a read-only mode to the compile cache ↗ nodejs/node
- [2] fs: fix realpath of namespaced drive paths nodejs/node
- [3] stream: prevent share from eagerly draining source nodejs/node
- [4] lib,src: remove `--no-experimental-websocket` CLI flag nodejs/node
- [5] http: use intrusive lists in ConnectionsList ↗ nodejs/node
- [6] chore(deps): bump actions/setup-node from 6.4.0 to 7.0.0 ↗ nodejs/amaro
- [7] chore(deps): bump step-security/harden-runner from 2.19.4 to 2.20.0 ↗ nodejs/amaro
- [8] Add report for 2026-08-24 nodejs/reliability