Enabling corepack with pnpm leads to EAS trying to install pnpm again with an error
- Dominant language
- TypeScript
- Stars
- 1.4k
- Forks
- 236
- Avg merge
- 3d 1h
- Merged PRs (30d)
- 91
Description
### Build/Submit details page URL
https://expo.dev/accounts/zweitag/projects/farmpartner-app/builds/650ce1da-3f39-49ad-815d-24855b9e9209
### Summary
I'm specifying these options in `eas.json`:
```
"corepack": true,
"node": "24.3.0",
```
The project is using pnpm. Now I'd expect EAS to install the specified node version, enable corepack and use the pnpm version defined in package.json via corepack. But instead EAS tries to install pnpm manually (without using corepack). This fails, since the pnpm binary already exists after enabling corepack.
I think, enabling corepack should disable the installation of the package manager, since corepack will handle it.
### Managed or bare?
Managed
### Environment
expo-env-info 1.3.4 environment info:
System:
OS: macOS 15.6
Shell: 5.9 - /bin/zsh
Binaries:
Node: 24.3.0 - ~/.asdf/installs/nodejs/24.3.0/bin/node
npm: 11.4.2 - ~/.asdf/plugins/nodejs/shims/npm
Watchman: 2025.06.23.00 - /opt/homebrew/bin/watchman
SDKs:
iOS SDK:
Platforms: DriverKit 24.1, iOS 18.1, macOS 15.1, tvOS 18.1, visionOS 2.1, watchOS 11.1
IDEs:
Android Studio: 2024.3 AI-243.25659.59.2432.13423653
Xcode: 16.1/16B40 - /usr/bin/xcodebuild
npmPackages:
expo: ^52.0.46 => 53.0.20
expo-updates: ~0.27.4 => 0.28.17
react: 18.3.1 => 19.0.0
react-native: ^0.76.9 => 0.79.5
npmGlobalPackages:
eas-cli: 16.17.4
Expo Workflow: managed
### Error output
```
Installing node v24.3.0
Downloading and installing node v24.3.0...
Downloading http://10.94.183.70:8081/v24.3.0/node-v24.3.0-darwin-arm64.tar.xz...
########################
34.3%
#######################################################
77.0%
########################################################################
100.0%
Computing checksum with sha256sum
Checksums matched!
Now using node v24.3.0 (npm v11.4.2)
default -> 24.3.0 (-> v24.3.0 *)
npm warn deprecated inflight@1.0.6: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.
npm warn deprecated npmlog@4.1.2: This package is no longer supported.
npm warn deprecated are-we-there-yet@1.1.7: This package is no longer supported.
npm warn deprecated glob@7.2.3: Glob versions prior to v9 are no longer supported
npm warn deprecated gauge@2.7.4: This package is no longer supported.
added 144 packages in 13s
12 packages are looking for funding
run `npm fund` for details
Enabling corepack
Installing pnpm@9.15.9
npm error code EEXIST
npm error path /Users/expo/.nvm/versions/node/v24.3.0/bin/pnpm
npm error EEXIST: file already exists
npm error File exists: /Users/expo/.nvm/versions/node/v24.3.0/bin/pnpm
npm error Remove the existing file and try again, or run npm
npm error with --force to overwrite files recklessly.
npm error A complete log of this run can be found in: /Users/expo/.npm/_logs/2025-08-19T08_22_45_853Z-debug-0.log
Failed to install pnpm 9.15.9
npm -g install pnpm@9.15.9 exited with non-zero code: 1
Error: Failed to install pnpm. Make sure you specified the correct version in eas.json.
```
### Reproducible demo or steps to reproduce from a blank project
see above use a project with pnpm, and set the options:
```
"corepack": true,
"node": "24.3.0",
```
Contributor guide
Assessment
This issue has not been assessed yet.