Config plugin fails on Expo SDK 56: Cannot find module '@expo/config-plugins/build/plugins/ios-plugins'
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 82/100
- Tipo de issue
- Error
- Claridad
- Bien especificado
- Estado de actividad
- Activo
- Stack tecnológico
- react-native, typescript
- Área
- build-system, mobile
Línea de trabajo
Comienza con plugin/src/ios.ts y plugin/src/android.ts; después, inspecciona los archivos del plugin compilados que se mencionan en el error para rastrear los imports fallidos de config-plugin. Ejecuta la reproducción de Expo SDK 56 con npx expo prebuild --clean y verifica que prebuild finalice correctamente sin añadir @expo/config-plugins como dependencia directa.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Summary
When using the built-in Expo config plugin with Expo SDK 56, npx expo prebuild fails because the plugin imports from @expo/config-plugins internal paths directly. The package is not hoisted to the project root node_modules, so module resolution fails.
Reproducible sample code
npx expo prebuild --clean
Steps to reproduce
- Create an Expo SDK 56 project (or upgrade an existing one)
- Install react-native-maps:
npx expo install react-native-maps
- Enable the config plugin in
app.config.ts:
import type { ExpoConfig } from 'expo/config';
export default (): ExpoConfig => ({
name: 'repro',
slug: 'repro',
plugins: [
[
'react-native-maps',
{
androidGoogleMapsApiKey: 'test-key',
},
],
],
});
- Run:
npx expo prebuild --clean
Expected result
Prebuild should succeed without requiring @expo/config-plugins as a direct project dependency.
Actual result
Prebuild fails immediately with:
PluginError: Cannot find module '@expo/config-plugins/build/plugins/ios-plugins'
Require stack:
- node_modules/react-native-maps/plugin/build/ios.js
- node_modules/react-native-maps/plugin/build/index.js
- node_modules/react-native-maps/app.plugin.js
React Native Maps Version
1.27.2
What platforms are you seeing the problem on?
Android, iOS (Google Maps)
React Native Version
0.85.3
What version of Expo are you using?
SDK 56
Device(s)
prebuild (Android/iOS)
Additional information
Root cause
The config plugin still uses the legacy import style:
require("@expo/config-plugins/build/plugins/ios-plugins");
require("@expo/config-plugins/build/utils/generateCode");
Since Expo SDK 47, Expo recommends importing from expo/config-plugins instead of @expo/config-plugins directly (SDK 47 blog post). In SDK 56, @expo/config-plugins is nested under expo/node_modules and is not hoisted, so react-native-maps cannot resolve it from its plugin code.
Official Expo modules (e.g. expo-sqlite) already use the new pattern:
import { ConfigPlugin, withGradleProperties } from 'expo/config-plugins';
The same pattern in plugin/src/ios.ts and plugin/src/android.ts would resolve the issue.
Current workaround
Add @expo/config-plugins as a direct dependency:
npx expo install @expo/config-plugins
- Lenguaje dominante
- TypeScript
- Estrellas
- 16k
- Forks
- 5k
- Merge medio
- 17 h 45 min
- PR fusionados (30 d)
- 2
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de react-native-maps/react-native-maps
-
Dificultad 1/5 1-3 horas Aptitud para principiantes 88/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 90/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
react-native-maps/react-native-maps#5987 · 1 comentario ·
Todos los issues de react-native-maps/react-native-maps
Issues similares
-
blocklist removal
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
MetaMask/eth-phishing-detect#296544 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
pastelsky/bundlephobia#1122 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
-
category/development priority/P2 scope/file-operations scope/testing type/enhancement
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
-
Enatega Customer and Rider app: Add-ons price is not visible to customer after order is placed. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100