Skip to content

[eas-cli] Update bundled Expo config stack for TypeScript app configs - #4395

Open
erenbati wants to merge 2 commits into
expo:mainfrom
erenbati:fix/typescript-config-fallback
Open

erenbati wants to merge 2 commits into
expo:mainfrom
erenbati:fix/typescript-config-fallback

Conversation

@erenbati

@erenbati erenbati commented Sep 13, 2026 •

Copy link
Copy Markdown

Why

Fixes #4205.

EAS CLI currently bundles an older Expo config-loading stack that can fail to read valid TypeScript app.config.ts files in two cases:

  • configs that use import.meta can fail when the bundled fallback is evaluated as CommonJS
  • TypeScript 7 exposes no compiler API through the typescript package stub, so the older require-utils path dereferences a missing ModuleKind.CommonJS

The SDK 56 config stack already contains the fixes for both cases.

How

  • update the bundled Expo config stack to the SDK 56 line:
    • @expo/config@56.0.14
    • @expo/config-plugins@56.0.16
    • @expo/prebuild-config@56.0.23
    • this resolves @expo/require-utils@56.1.7
  • preserve the legacy splash validation read after the SDK 56 config type change
  • narrow update workflow typing to the platforms EAS Update actually publishes
  • adapt the exempt-encryption memfs test mock to SDK 56's resolveFrom-based config path resolution
  • regenerate yarn.lock

Test Plan

The original validation run on the pre-refresh branch passed the TypeScript 7 and import.meta reproductions, workspace build, fallback and exempt-encryption tests, typecheck, formatting, lint, and all 325 Jest suites: https://github.com/erenbati/eas-cli/actions/runs/34762593768

After merging current upstream main at f949f34 (head 6675cdd):

  • corepack yarn workspace eas-cli typecheck-for-build passed
  • bundled-config fallback tests passed (3/3)
  • the update command and exempt-encryption test suites passed
  • the full Jest suite on Windows passed 329/363 suites; remaining failures include POSIX path and locale assumptions, and the publish/PNG validation tests need Linux CI confirmation
  • the root workspace build reaches copy-new-templates but its mkdir -p command is not supported by the Windows shell
  • the latest PR Actions runs are waiting for maintainer approval (action_required); they have not run on this head

Checklist

  • I've added an entry to CHANGELOG.md if necessary.

Copy link
Copy Markdown
Author

/changelog-entry bug-fix [eas-cli] Update the bundled Expo config stack so TypeScript app.config.ts files work with import.meta and TypeScript 7.

@github-actions

Copy link
Copy Markdown

Subscribed to pull request

File Patterns Mentions
packages/eas-cli/** @douglowder
packages/eas-cli/src/commands/update/** @wschurman, @quinlanj
packages/eas-cli/src/build/** @sjchmiela

Generated by CodeMention

Warning: The preamble and epilogue options in commentConfiguration are deprecated. Use template instead.

@erenbati
erenbati force-pushed the fix/typescript-config-fallback branch from 068422f to 0204acc Compare September 15, 2026 15:17
@erenbati
erenbati force-pushed the fix/typescript-config-fallback branch from 0204acc to 34c399f Compare September 25, 2026 09:02
@github-actions
github-actions Bot force-pushed the fix/typescript-config-fallback branch from 4e1338e to 148d77e Compare October 6, 2026 17:26
@github-actions
github-actions Bot force-pushed the fix/typescript-config-fallback branch from 148d77e to f89caa2 Compare October 6, 2026 17:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Bundled @expo/config cannot read a TypeScript app.config.ts (two independent failures in eas-cli 22.0.0)

1 participant