web-dev-qa-db-ja.com

create-react-native-appプロジェクトで「プラグイン/プリセットファイルはオブジェクトのエクスポートのみ許可され、機能のみ」というエラーが突然表示される

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の潜在的な複製としてマークされます。 -プラグイン/プリセットファイルはオブジェクトのエクスポートを許可されておらず、関数のみ

  1. この質問は実際に投稿で引用されており、他の存在にもかかわらずこの質問が投稿された理由の説明は最後の段落に含まれており、
  2. this の質問に対する後の回答は他のユーザーに説明します why 0.55へのダウングレードは問題を解決します(そしてユーザーがさらに調査できる関連ドキュメントを引用します) )、(この質問の投稿の /)は他の引用された質問には存在しませんでした(現在、この質問を重複としてマークしたユーザーは、 0.55のダウングレードが機能する理由についても言及している引用された質問)。
13

問題はこれであることがわかりました:

ある時点で、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-nativereact、および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"
  }
}
18

今日も同じ問題が起こりました。どうやら、react-nativeは0.56.0にアップグレードされました。反応ネイティブ版を0.55.0にダウングレードして問題を解決しました

npm install [email protected]
10
user2209783

その理由は@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",

1

私は今日この問題に遭遇し、ダウングレードreact、react-native、expoを提案するか、expoのバージョンをreact- @ lampShadesDrifter が示唆するネイティブ

しかしながら、

npm install

私のためにトリックをしました

0
s.khetcho