Work / Imposter / Wiki / Concepts
pnpm-install
Conceptverified 2026-10-30
pnpm and installs
A stray yarn.lock or package-lock.json is not harmless. @expo/package-manager resolves in the order bun, yarn, npm, pnpm and returns the first lockfile it finds, so one silently makes every expo install, expo prebuild and expo run:* shell out to that manager. .gitignore covers them, but ignoring a file does not stop Expo reading it. Deleting it is the only thing that stops the loop.
pnpm-workspace.yaml carries two settings that matter:
nodeLinker: hoisted— Expo requires it.@expo/cli, metro and react-native deep-import internals of their own dependencies, which pnpm's default isolated layout does not expose, and the dev server dies with "Cannot find module @expo/metro/metro/lib/formatBundlingError.js".minimumReleaseAge: 1440— a version published less than 24h ago will not install. The guard against a maintainer-account takeover shipping a credential stealer in a patch release.