2016-06-26 4 views
1

У меня есть модуль, который я использую для узла и (сейчас) реагирует-native. Я бы хотел выборочно экспортировать код в зависимости от того, на какой платформе он будет работать. Если вы можете заставить это работать на устройстве, вы решили проблему.Как я могу обнаружить React Native packager в модуле?

модуль:

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

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

на устройстве:

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

Есть ли способ сделать это?

Я не хочу создавать два отдельных модуля, которые отличаются только index.js, если мне это не нужно.

Спасибо!

ответ

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'); 
} 
+0

Я не думаю, что работает. Вы пытались запустить его? Посмотрите на мой пример, я его отредактировал. Попробуйте потребовать ('fs') только в узле. –

Смежные вопросы