pnpm v11+ for devEngines.packageManager support
K
Karl Horky
Currently (as of Sep 2026), the older packageManager top-level field in package.json is supported, but this is marked as legacy by pnpm docs ( https://pnpm.io/package_json#devenginespackagemanager ).
pnpm v11+ self-manages pnpm versions by default using the modern devEngines.packageManager field.
The current latest version of pnpm is v12 (the Rust rewrite). Using either v11 or v12 would enable usage of the modern devEngines.packageManager field.
Log In
K
Karl Horky
Workaround: Install using
npx get-pnpm
Read the version from
devEngines.packageManager
in package.json
and pass that into the installation command using npx get-pnpm
:# Install pnpm by devEngines.packageManager version on Render
# https://feedback.render.com/features/p/pnpm-v11-for-devenginespackagemanager-support
pnpm_version="$(
node --input-type=module --eval \
'console.log((await import("./package.json", { with: { type: "json" } })).default.devEngines.packageManager.version)'
)"
(
# Prevent npx get-pnpm EBADDEVENGINES failure from
# devEngines.packageManager in package.json
cd /
ENV="$HOME/.bashrc" SHELL=/bin/bash \
npx --yes get-pnpm "$pnpm_version"
)
# .bashrc exists on Render, not locally or on GitHub Actions
# shellcheck disable=SC1091
source "$HOME/.bashrc"