create-react-native-app
を介して生成されたプロジェクトに取り組んできました。しばらくプロジェクトを正常に使用していましたが、exp start --tunnel
を介してアプリをテストしようとすると、次の形式のエラーが突然表示されます(以前は機能していました)。
[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.
問題に対処しているように見えるいくつかの投稿を見ました( https://github.com/babel/babel/issues/6808 and Babel Plugin/Preset files are notオブジェクトのみをエクスポートできますが、関数 )のみですが、react-anythingはまったく新しく、bable
が何であるかを完全に取得できないため、これらの投稿を自分の状況に適用する方法を理解するのが困難です。
私の.bablercファイル(他の投稿で関連しているように見える)は:
{
"presets": ["babel-preset-expo"],
"env": {
"development": {
"plugins": ["transform-react-jsx-source"]
}
}
}
npm cache clean --force && rm -rf node_modules && rm -f package-lock.json && npm install
を変更せずに試しました。 役立つと思われるのは、react-native @ 0.56から0.55にダウングレードすることです(ここで採用されているように: Create Reactネイティブアプリ-プラグイン/プリセットファイルはオブジェクトのエクスポートを許可されておらず、関数のみ )が、これは問題を直接解決していないようです回避策。ここで何を行うべきかについてのアドバイスをいただければ幸いです(デバッグを支援するために含まれるべき他のファイルはありますか?)。
**この質問に対する回答として、 Create React Native Appの潜在的な複製としてマークされます。 -プラグイン/プリセットファイルはオブジェクトのエクスポートを許可されておらず、関数のみ 、
問題はこれであることがわかりました:
ある時点で、react-nativeを0.56に、expoを28.0.0に更新したnpm update
を完了している必要があります。
React-nativeドキュメント( https://facebook.github.io/react-native/docs/upgrading.html#create-react-native-app-projects )を見ると、react-nativeのようです相互に明確に互換性のあるreact-native
、react
、およびexpo
のバージョンをインストールする必要があります。どのパッケージのどのバージョンが相互に互換性があるかのマトリックスは、ここにあります: https://github.com/react-community/create-react-native-app/blob/master/VERSIONS.md そして言う
これらの依存関係の各バージョンは、他の2つのバージョンの狭いバージョンとのみ互換性があります。
この執筆時点でドキュメントは2018年4月27日に最終更新されたため、どのバージョンのreactおよびexpo(最近リリースされたバージョン28.0.0)が正確であるかは明確ではありません現在リリースされている[email protected]と組み合わせて使用します。 が文書化されている最新の反応ネイティブバージョンは、react-native @ 0.55([email protected]および[email protected]に対応)です。 [email protected]へのダウングレードはこの場合に役立ちました([email protected]のマトリックスにドキュメントがない理由がわかりませんまだ)、私のpackage.jsonは次のようになりました:
...
"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"
}
}
今日も同じ問題が起こりました。どうやら、react-nativeは0.56.0にアップグレードされました。反応ネイティブ版を0.55.0にダウングレードして問題を解決しました
npm install [email protected]
その理由は@lampShadesDrifterによって完全に説明されましたが、expoにバンドルされているreact-native sdkを使用するより迅速なソリューションを追加します。 https://github.com/expo/react-native/
したがって、expo sdk 29でこれを依存関係に追加できます。
"react-native": "https://github.com/expo/react-native/archive/sdk-29.0.0.tar.gz",
私は今日この問題に遭遇し、ダウングレードreact、react-native、expoを提案するか、expoのバージョンをreact- @ lampShadesDrifter が示唆するネイティブ
しかしながら、
npm install
私のためにトリックをしました