eas-cli icon indicating copy to clipboard operation
eas-cli copied to clipboard

Enabling corepack with pnpm leads to EAS trying to install pnpm again with an error

Open pmk1c opened this issue 4 months ago • 2 comments

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 [email protected]: 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 [email protected]: This package is no longer supported.
npm warn deprecated [email protected]: This package is no longer supported.
npm warn deprecated [email protected]: Glob versions prior to v9 are no longer supported
npm warn deprecated [email protected]: 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 [email protected]
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 [email protected] 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",

pmk1c avatar Aug 19 '25 08:08 pmk1c