← back to Nineoh Guide
Fix EAS install (build 12/13 failure): approve firebase/protobufjs/sharp build scripts via allowBuilds:true — ignored build scripts are a FATAL error in EAS CI (exit 1), only a warning locally
67efe4b64b233491e0e1c8ff1e5aae146cab1b72 · 2026-08-05 16:44:38 -0700 · Steve Abrams
Files touched
Diff
commit 67efe4b64b233491e0e1c8ff1e5aae146cab1b72
Author: Steve Abrams <steve@designerwallcoverings.com>
Date: Wed Aug 5 16:44:38 2026 -0700
Fix EAS install (build 12/13 failure): approve firebase/protobufjs/sharp build scripts via allowBuilds:true — ignored build scripts are a FATAL error in EAS CI (exit 1), only a warning locally
---
pnpm-workspace.yaml | 27 +++++++++++----------------
1 file changed, 11 insertions(+), 16 deletions(-)
diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml
index ef75bad..8dcf1c6 100644
--- a/pnpm-workspace.yaml
+++ b/pnpm-workspace.yaml
@@ -1,20 +1,15 @@
packages:
- "apps/*"
- "packages/*"
+# Approve native postinstall build scripts. Values MUST be real booleans.
+# On EAS (CI) an unbuilt/ignored build script is a FATAL error (pnpm install
+# exits 1), unlike locally where it is only a warning — that is what killed
+# builds 12 & 13 after Firebase (@firebase/util, protobufjs) was added. A prior
+# auto-fixer wrote this same `allowBuilds` block but with literal
+# "set this to true or false" placeholders, which is invalid — use `true`.
+allowBuilds:
+ '@firebase/util': true
+ protobufjs: true
+ sharp: true
-# pnpm@11 treats an UNDECIDED build-script as ERR_PNPM_IGNORED_BUILDS, and EAS's
-# frozen `pnpm install` makes that a FATAL exit-1 at the "Install dependencies"
-# phase (build 12/13 failed exactly here). It is NOT harmless on EAS. These
-# native postinstalls aren't needed for the iOS JS bundle, so record an EXPLICIT
-# "ignore" decision. Doing so also stops the auto-fixer from re-writing a
-# malformed `allowBuilds:` placeholder map (which is what crashed the frozen
-# install in the first place — do NOT add an `allowBuilds:` map here).
-ignoredBuiltDependencies:
- - "@firebase/util"
- - protobufjs
- - sharp
-
-# NOTE: nodeLinker stays ISOLATED (pnpm default). Hoisting collapses the two
-# React versions (web=19, mobile=18.3.1) and breaks Next's build. Instead the
-# mobile app lists the transitive deps Metro needs (e.g. @babel/runtime) as
-# explicit dependencies so they land in apps/mobile/node_modules.
+# NOTE: node-linker=hoisted (see .npmrc) so Metro/EAS can resolve transitive deps.
← 19fb4f5 auto-save: 2026-08-05T16:43:55 (2 files) — eas.json pnpm-wor
·
back to Nineoh Guide
·
fix(eas): allowBuilds with real boolean false values — pnpm@ ec52898 →