Hi all,
I’m using a pnpm monorepo and trying to build my expo project on EAS (iOS only right now). From a previous topic + the iOS builds doc, I would expect the install dependencies
step to use pnpm
, but my builds are attempting to run yarn install
after the pre-install hook.
I know that full pnpm monorepo support is out of scope, but I was wondering if there was something I was missing for the install
step to pick up my package manager (or allow me to just cancel / no-op the step so that we can macgyver it with pre-install/post-install hooks.
A bit more information:
- pnpm monorepo managed with Rush
- .npmrc with node-linker:hoisted
- I’m running expo commands from my app directory
- Was trying to use
eas-build-pre-install
andeas-build-post-install
hooks to install and build the project using rush/pnpm - My package.json is being picked up correctly by EAS, here is a condensed version:
{
"name": "@myCo/expo-app",
"version": "1.0.0",
"private": true,
"main": "index.js",
"scripts": {
"_phase:build": "tsc",
"build": "tsc",
"dev": "expo start",
"eas-build-post-install": "node ../../../common/scripts/install-run-rush.js build --to @myCo/expo-app",
"eas-build-pre-install": " node ../../../common/scripts/install-run-rush.js install --to @myCo/expo-app",
"expo": "expo",
"ios": "expo run:ios"
},
"dependencies": {
"@babel/core": "^7.15.0",
"@babel/runtime": "~7.20.13",
"@myCo/package1": "workspace:*",
"@myCo/package2": "workspace:*",
...
},
"devDependencies": {
"@babel/core": "^7.15.0",
"@rnx-kit/metro-config": "~1.3.5",
"@rnx-kit/metro-resolver-symlinks": "~0.1.25",
...
}
}