/ /私たちがreact-nativeコンテキストにいるかどうかを知る方法は? - リアクトネイティブ

私たちが反応ネイティブのコンテキストにいるかどうかを知るには? - 反応原産

ブラウザとノード環境で動作するように作成されたnpmライブラリがあります。

ノード環境で使用すると、 require 機能が存在し、次のようなモジュールが必要です fs.

var fs = null;
if (typeof require !== "undefined") {
fs = require("fs");
}

このようなモジュールはreactnativeには存在しないため、このライブラリをreact Nativeで使用すると、エラーが発生します。

私たちがReactNativeコンテキストとノードのどちらにいるかを知るための最良の方法は何ですか?

回答:

回答№1は0

AFAIK、明示的にどこかに設定せずにこれを行う方法はありません。 ReactNativeには require だがしかし fs。これがおそらくエラーが発生する理由です。 global 両方で利用できるので、保存するオプションかもしれません isReact の変数 global オブジェクト。

global.isReact = true. isReact アプリ全体で利用できるようになります。多くの人が使うのは賢明ではないと言います global 変数ですが、この場合は例外になる可能性があります。

また、 env.js 設定したルートディレクトリ内のファイル isReact 変数と require ReactNativeとNodeのどちらで実行しているかを判断する必要があるときはいつでもそのファイル。


回答№2の場合は0

残念ながら、@ borislemkeの回答は機能しませんでした。条件付けできないようです。 require。私はそれだと思います」 babel 条件を考慮せずに依存関係のツリーを構築します。

私はついに移動しました require で追加されるファイルに grunt