Haben an einem Projekt gearbeitet, das mit create-react-native-app
erstellt wurde. Habe das Projekt bereits seit einiger Zeit erfolgreich verwendet, aber jetzt versucht es, die App über exp start --tunnel
zu testen, wird plötzlich ein Fehler des Formulars angezeigt (obwohl es zuvor funktioniert hat):
[22:08:19] /path/to/node_modules/react-native-scripts/build/bin/crna-entry.js: Plugin/Preset files are not allowed to export objects, only functions. In /path/to/node_modules/babel-preset-expo/index.js
[22:08:19] Failed building JavaScript bundle.
Habe einige Beiträge gesehen, die sich scheinbar mit dem Problem befassen ( https://github.com/babel/babel/issues/6808 und Babel Plugin/Preset-Dateien dürfen keine Objekte exportieren, nur Funktionen ), aber ich bin völlig neu zu reagieren und verstehe nicht, was bable
ist, also habe ich Schwierigkeiten zu verstehen, wie ich diese Posts auf meine eigene Situation anwenden kann.
Meine .bablerc-Datei (wie es in den anderen Beiträgen relevant zu sein scheint) ist:
{
"presets": ["babel-preset-expo"],
"env": {
"development": {
"plugins": ["transform-react-jsx-source"]
}
}
}
Habe npm cache clean --force && rm -rf node_modules && rm -f package-lock.json && npm install
ohne Änderung ausprobiert. Was scheint zu helfen, ist ein Downgrade von [email protected] auf 0.55 (wie hier angegeben: React Native App erstellen. - Plugin/Preset-Dateien dürfen keine Objekte exportieren, nur Funktionen ), aber Dies scheint das Problem nicht direkt anzugehen, sondern eher ein Workaround. Irgendwelche Ratschläge dazu, was hier getan werden sollte, sind willkommen (alle anderen Dateien, die zum Debuggen hinzugefügt werden sollten).
** Als Antwort darauf, dass diese Frage als potenzielles Duplikat von Create React Native App markiert wurde. - Plugin/Preset-Dateien dürfen keine Objekte exportieren, nur Funktionen ,
Festgestellt, dass das Problem Folgendes ist:
Irgendwann muss ein npm update
Durchgeführt worden sein, das reaktionsnativ auf 0.56 und expo auf 28.0.0 aktualisiert wurde.
Betrachtet man die reaktionsnativen Dokumente ( https://facebook.github.io/react-native/docs/upgrading.html#create-react-native-app-projects ), so scheint es, als ob reaktionsnativ um Versionen von react-native
, react
und expo
zu installieren, die alle speziell miteinander kompatibel sind . Eine Matrix, welche Versionen welcher Pakete miteinander kompatibel sind, finden Sie hier: https://github.com/react-community/create-react-native-app/blob/master/VERSIONS.md und sagt
Jede Version dieser Abhängigkeiten ist nur mit einem engen Versionsbereich der beiden anderen kompatibel.
Zum jetzigen Zeitpunkt Das Dokument wurde zuletzt am 27. April 2018 aktualisiert, daher ist nicht genau bekannt, in welchen Versionen von react and expo (die kürzlich die Version 28.0.0 veröffentlicht haben) gearbeitet werden soll kombination mit dem now-out reag- [email protected] Die neueste reaktionsnative Version, die is dokumentiert ist, ist [email protected] (passend zu [email protected] und [email protected]), was meiner Meinung nach der Grund ist Ein Downgrade auf [email protected] war in diesem Fall hilfreich (Ich weiß nicht, warum die Matrix für [email protected] noch keine Dokumentation enthält), Mein package.json sieht jetzt so aus:
...
"dependencies": {
"@expo/vector-icons": "^6.3.1",
"eslint": "^4.19.1",
"expo": "^27.1.0",
"prop-types": "^15.6.2",
"react": "16.3.1",
"react-native": "^0.55.4",
"react-native-mail": "^3.0.6",
"react-native-modal-dropdown": "^0.6.2",
"react-navigation": "^2.6.2",
"react-redux": "^5.0.7",
"redux": "^4.0.0",
"tcomb-form-native": "^0.6.14",
"uuid": "^3.3.2"
}
}
Das gleiche Problem ist heute bei mir passiert. Anscheinend wurde Reaktiver auf 0.56.0 ..__ aktualisiert. Die heruntergeladene Reaktiverversion auf 0.55.0 hat mein Problem behoben
npm install [email protected]
Der Grund wurde von @lampShadesDrifter vollständig erklärt, ich werde jedoch eine schnellere Lösung hinzufügen, die die Verwendung von reaktionsnativem sdk ist, das von expo gebündelt wird: https://github.com/expo/react-native/
So können Sie dies Ihren Abhängigkeiten mit expo sdk 29 hinzufügen:
"react-native": "https://github.com/expo/react-native/archive/sdk-29.0.0.tar.gz",
Ich bin heute auf dieses Problem gestoßen und bin auf mehrere Lösungen gestoßen, die eine Herabstufung von React, Reaktiver, Expo oder durch Abgleichen der Version von Expo mit dem Reaktierenden vorschlagen, wie von @lampShadesDrifter vorgeschlagen.
jedoch,
npm install
hat den Trick für mich gemacht