latest now installs a Node.js 27 alpha
Written 4 November 2026
Written 2026-11-04 for teams whose CI asks for the newest Node.js instead of a version. The Node.js project tagged v27.0.0-alpha.0.0.0 on 2026-10-29 at 18:13 UTC, published as a pre-release on GitHub (release). The nodejs.org dist index lists it first, above 26.13.0. The latest folder still holds 26.13.0.
What installs the alpha
- actions/setup-node with
node-version: latest,currentornode. It sorts the index by semver and takes the top entry (source). Open as setup-node#1660. - nvm with
nvm install nodeornvm install stable, in 0.39.1 and in 0.40.8, the newest release. - crytic/slither-action 0.4.0 to 0.4.2 without
node-version(and withoutignore-compile): it runsnvm install node.
The alpha ships npm 12.1.0. The npm 12 breaking changes include "npm view --json now always returns an array", dependency lifecycle scripts blocked unless allowScripts allows them, and unknown CLI flags that now throw.
Two failures in public CI
One account-abstraction SDK's npm cleanup job has failed every day since 2026-10-30. It pipes npm view <package> dist-tags --json through jq 'to_entries' to find tags to remove. npm 12 wraps the object in an array, so the only key is 0 (package name removed):
npm error 0 is not a dist-tag on <package>
##[error]Process completed with exit code 123.
Its 2026-10-29 run, on Node 26.13.0 and npm 11.20.0, passed.
One L2's Slither security scan stopped before Slither ran in all seven of its runs on 2026-11-03. nvm installed the alpha, then yarn 1.22.22 failed:
error follow-redirects@1.16.0: The engine "node" is incompatible with this module. Expected version ">=4.0". Got "27.0.0-alpha.0.0.0"
yarn 1 does not count a pre-release Node as inside ranges like >=4.0. In our test on the alpha it also failed >=18 and ^20 || ^22 || >=24, and passed * and >=0.10.0. A run on 2026-10-29 got Node 26.13.0 and passed.
What to do
We ran each of these offline in Docker against the 2026-11-04 index, with release tarballs checked against Node's signed checksums:
- setup-node:
node-version: 24installed 24.22.2.lts/*reads the actions/node-versions manifest, whose newest LTS is 26.13.0. - slither-action: pass
node-version: '24'orlts/*. nvm 0.39.1, the version the action installs, gave 24.22.2 and 26.13.0. - nvm:
nvm install --ltsgave 26.13.0 andnvm install 24gave 24.22.2. - Scripts that read
npm view --json: for an object or a single value, such asdist-tagsorversion,jq '(if type == "array" then .reads both npm 11 and npm 12 output. It does not fit list fields such as[0] else . end)' versions.
lts/* now means Node 26, whose release tarballs have no corepack (our Node 26 note).