[object Object]

← back to Nineoh Guide

fix(eas): allowBuilds with real boolean false values — pnpm@11 needs an explicit build-script decision; missing/placeholder crashed EAS frozen install (exit 1). Verified cold: frozen install exit 0, no ERR_PNPM_IGNORED_BUILDS

ec5289815f5e08c488d0190ed61728ba61d64adb · 2026-08-05 16:46:47 -0700 · Steve

Files touched

Diff

commit ec5289815f5e08c488d0190ed61728ba61d64adb
Author: Steve <steve@designerwallcoverings.com>
Date:   Wed Aug 5 16:46:47 2026 -0700

    fix(eas): allowBuilds with real boolean false values — pnpm@11 needs an explicit build-script decision; missing/placeholder crashed EAS frozen install (exit 1). Verified cold: frozen install exit 0, no ERR_PNPM_IGNORED_BUILDS
---
 pnpm-workspace.yaml | 20 ++++++++++----------
 1 file changed, 10 insertions(+), 10 deletions(-)

diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml
index 8dcf1c6..4ffecdf 100644
--- a/pnpm-workspace.yaml
+++ b/pnpm-workspace.yaml
@@ -1,15 +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`.
+
+# pnpm@11 requires an EXPLICIT per-package decision for postinstall build scripts
+# via this `allowBuilds` map. A MISSING decision -> ERR_PNPM_IGNORED_BUILDS, which
+# EAS's frozen `pnpm install` treats as a FATAL exit-1 at "Install dependencies".
+# Earlier crashes were pnpm writing PLACEHOLDER strings ("set this to true or
+# false"); the fix is REAL BOOLEANS. Not needed for the iOS JS bundle -> false.
 allowBuilds:
-  '@firebase/util': true
-  protobufjs: true
-  sharp: true
+  '@firebase/util': false
+  protobufjs: false
+  sharp: false
 
-# NOTE: node-linker=hoisted (see .npmrc) so Metro/EAS can resolve transitive deps.
+# nodeLinker stays ISOLATED; mobile lists transitive deps it needs explicitly.

← 67efe4b Fix EAS install (build 12/13 failure): approve firebase/prot  ·  back to Nineoh Guide  ·  auto-save: 2026-08-05T18:14:36 (1 files) — db/neon-backup-20 620829a →