From 622eb84bc9c3fa91adffcf650e8d6ba14e156b52 Mon Sep 17 00:00:00 2001 From: mrleo1nid <43583385+mrleo1nid@users.noreply.github.com> Date: Tue, 20 Oct 2026 03:28:58 +0300 Subject: [PATCH] fix(mobile): hoist expo-modules-autolinking instead of depending on it expo-doctor rejects expo-modules-autolinking as a direct dependency, which failed the CI mobile job. Expose it through publicHoistPattern so Expo can still require it from the apps/mobile/node_modules/expo symlink and the autolinking import stays expo.modules.ExpoModulesPackage. Co-Authored-By: Claude Opus 5.5 --- apps/mobile/package.json | 1 - pnpm-lock.yaml | 19 ++++++++----------- pnpm-workspace.yaml | 7 +++++++ 3 files changed, 15 insertions(+), 12 deletions(-) diff --git a/apps/mobile/package.json b/apps/mobile/package.json index 42e8757..c88c772 100644 --- a/apps/mobile/package.json +++ b/apps/mobile/package.json @@ -17,7 +17,6 @@ "expo": "~53.0.20", "expo-build-properties": "~0.14.8", "expo-constants": "~17.1.7", - "expo-modules-autolinking": "~2.1.15", "expo-status-bar": "~2.2.3", "i18next": "^25.2.1", "react": "19.0.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2bb192f..e8871c0 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -38,9 +38,6 @@ importers: expo-constants: specifier: ~17.1.7 version: 17.1.8(expo@53.0.27(@babel/core@7.29.7)(react-native@0.79.6(@babel/core@7.29.7)(@types/react@19.0.14)(react@19.0.0)(supports-color@10.2.2))(react@19.0.0)(supports-color@10.2.2))(react-native@0.79.6(@babel/core@7.29.7)(@types/react@19.0.14)(react@19.0.0)(supports-color@10.2.2)) - expo-modules-autolinking: - specifier: ~2.1.15 - version: 2.1.15 expo-status-bar: specifier: ~2.2.3 version: 2.2.3(react-native@0.79.6(@babel/core@7.29.7)(@types/react@19.0.14)(react@19.0.0)(supports-color@10.2.2))(react@19.0.0) @@ -114,13 +111,13 @@ importers: version: 4.7.0(vite@6.4.4(@types/node@26.6.5)(lightningcss@1.27.0)(terser@5.51.2)) jsdom: specifier: ^26.1.0 - version: 26.1.0 + version: 26.1.0(supports-color@10.2.2) vite: specifier: ^6.3.5 version: 6.4.4(@types/node@26.6.5)(lightningcss@1.27.0)(terser@5.51.2) vitest: specifier: ^3.2.4 - version: 3.2.7(@types/node@26.6.5)(jsdom@26.1.0)(lightningcss@1.27.0)(supports-color@10.2.2)(terser@5.51.2) + version: 3.2.7(@types/node@26.6.5)(jsdom@26.1.0(supports-color@10.2.2))(lightningcss@1.27.0)(supports-color@10.2.2)(terser@5.51.2) packages/api-client: dependencies: @@ -140,7 +137,7 @@ importers: devDependencies: vitest: specifier: ^3.2.4 - version: 3.2.7(@types/node@26.6.5)(jsdom@26.1.0)(lightningcss@1.27.0)(supports-color@10.2.2)(terser@5.51.2) + version: 3.2.7(@types/node@26.6.5)(jsdom@26.1.0(supports-color@10.2.2))(lightningcss@1.27.0)(supports-color@10.2.2)(terser@5.51.2) packages/design-tokens: {} @@ -5756,7 +5753,7 @@ snapshots: statuses: 2.0.2 toidentifier: 1.0.1 - http-proxy-agent@7.0.2: + http-proxy-agent@7.0.2(supports-color@10.2.2): dependencies: agent-base: 7.1.4 debug: 4.4.3(supports-color@10.2.2) @@ -5941,13 +5938,13 @@ snapshots: jsc-safe-url@0.2.4: {} - jsdom@26.1.0: + jsdom@26.1.0(supports-color@10.2.2): dependencies: cssstyle: 4.6.0 data-urls: 5.0.0 decimal.js: 10.6.0 html-encoding-sniffer: 4.0.0 - http-proxy-agent: 7.0.2 + http-proxy-agent: 7.0.2(supports-color@10.2.2) https-proxy-agent: 7.0.6(supports-color@10.2.2) is-potential-custom-element-name: 1.0.1 nwsapi: 2.2.28 @@ -7082,7 +7079,7 @@ snapshots: lightningcss: 1.27.0 terser: 5.51.2 - vitest@3.2.7(@types/node@26.6.5)(jsdom@26.1.0)(lightningcss@1.27.0)(supports-color@10.2.2)(terser@5.51.2): + vitest@3.2.7(@types/node@26.6.5)(jsdom@26.1.0(supports-color@10.2.2))(lightningcss@1.27.0)(supports-color@10.2.2)(terser@5.51.2): dependencies: '@types/chai': 5.2.3 '@vitest/expect': 3.2.7 @@ -7109,7 +7106,7 @@ snapshots: why-is-node-running: 2.3.0 optionalDependencies: '@types/node': 26.6.5 - jsdom: 26.1.0 + jsdom: 26.1.0(supports-color@10.2.2) transitivePeerDependencies: - jiti - less diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 0ed6cea..4a29478 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -5,3 +5,10 @@ packages: # Пакеты, которым разрешено выполнять install-скрипты allowBuilds: esbuild: true + +# Изолированная раскладка node_modules (pnpm 11). Expo вычисляет react-native.config.js пакета expo +# по пути через симлинк apps/mobile/node_modules/expo, и оттуда require('expo-modules-autolinking') +# находится только в корневом node_modules. Без этого autolinking молча генерирует неверный импорт +# expo.core.ExpoModulesPackage и release-сборка APK падает. Прямая зависимость не подходит: её запрещает expo-doctor. +publicHoistPattern: + - expo-modules-autolinking