pnpm 10.14
Added support for JavaScript runtime installation
Declare Node.js, Deno, or Bun in devEngines.runtime
(inside package.json
) and let pnpm download and pin it automatically.
Ejemplo de uso:
{
"devEngines": {
"runtime": {
"name": "node",
"version": "^24.4.0",
"onFail": "download" // we only support the "download" value for now
}
}
}
How it works:
pnpm install
resolves your specified range to the latest matching runtime version.- The exact version (and checksum) is saved in the lockfile.
- Scripts use the local runtime, ensuring consistency across environments.
Why this is better:
- This new setting supports also Deno and Bun (vs. our Node-only settings
useNodeVersion
andexecutionEnv.nodeVersion
) - Supports version ranges (not just a fixed version).
- The resolved version is stored in the pnpm lockfile, along with an integrity checksum for future validation of the Node.js content's validity.
- It can be used on any workspace project (like
executionEnv.nodeVersion
). So, different projects in a workspace can use different runtimes. - For now
devEngines.runtime
setting will install the runtime locally, which we will improve in future versions of pnpm by using a shared location on the computer.
Related PR: #9755.
Other new features
- Added
--cpu
,--libc
, and--os
topnpm install
,pnpm add
, andpnpm dlx
to customizesupportedArchitectures
via the CLI #7510.
Bug Fixes
- Fix a bug in which
pnpm add
downloads packages whoselibc
differ frompnpm.supportedArchitectures.libc
. - The integrities of the downloaded Node.js artifacts are verified #9750.
- Allow
dlx
to parse CLI flags and options between thedlx
command and the command to run or between thedlx
command and--
#9719. pnpm install --prod
should removing hoisted dev dependencies #9782.- Fix an edge case bug causing local tarballs to not re-link into the virtual store. This bug would happen when changing the contents of the tarball without renaming the file and running a filtered install.
- Fix a bug causing
pnpm install
to incorrectly assume the lockfile is up to date after changing a local tarball that has peers dependencies.