如何检测模块中的React Native包装程序?

时间:2016-06-26 04:55:45

标签: node.js npm react-native

我有一个模块用于节点和(现在)react-native。我希望有选择地导出代码,具体取决于它将在哪个平台上运行。如果你能在设备上运行它,你就解决了这个问题。

模块:

if(!react_native){
    exports.fs = require('fs');
}

exports.print = function(str){ console.log(str); }

在设备上:

var m = require('module');
m.print("hello world.");

有没有办法做到这一点?

我不想创建两个单独的模块,只有不同的index.js,如果我不必这样做。

谢谢!

1 个答案:

答案 0 :(得分:2)

简单检查 - 加载基本包:

var isNative = false;
var Platform;

try {
  Platform = require('react-native').Platform;
  isNative = true;
} catch(e) {}

if (isNative) {
  console.log(Platform.OS, Platform.Version);
} else {
  console.log('node');
}