ブラウザとノード環境で動作するように作成されたnpmライブラリがあります。
ノード環境で使用すると、 require
機能が存在し、次のようなモジュールが必要です fs
.
var fs = null;
if (typeof require !== "undefined") {
fs = require("fs");
}
このようなモジュールはreactnativeには存在しないため、このライブラリをreact Nativeで使用すると、エラーが発生します。
私たちがReactNativeコンテキストとノードのどちらにいるかを知るための最良の方法は何ですか?
回答:
回答№1は0AFAIK、明示的にどこかに設定せずにこれを行う方法はありません。 ReactNativeには require
だがしかし fs
。これがおそらくエラーが発生する理由です。 global
両方で利用できるので、保存するオプションかもしれません isReact
の変数 global
オブジェクト。
global.isReact = true
. isReact
アプリ全体で利用できるようになります。多くの人が使うのは賢明ではないと言います global
変数ですが、この場合は例外になる可能性があります。
また、 env.js
設定したルートディレクトリ内のファイル isReact
変数と require
ReactNativeとNodeのどちらで実行しているかを判断する必要があるときはいつでもそのファイル。
回答№2の場合は0
残念ながら、@ borislemkeの回答は機能しませんでした。条件付けできないようです。 require
。私はそれだと思います」 babel
条件を考慮せずに依存関係のツリーを構築します。
私はついに移動しました require
で追加されるファイルに grunt