我有一个模块用于节点和(现在)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,如果我不必这样做。
谢谢!
答案 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');
}