2016-08-23 3 views
1

я хочу создать фабрику/или аналогичный подход, основанный на требуемой ОС Windows/Linux , например, если использовать линуксСоздание фабрики для требуют узлов модулей

var isLinux = /^linux/.test(process.platform); 
var isWin = /^win/.test(process.platform); 

if(isLinux){ 
var spawn = require('child-process'); 
}{ 
elseif(isWin) 

var spawn = require('cross-spawn') 
} 
module.export = spawn; 

Я знаю, что кросс-нерестится также для окон ... мой вопрос есть более хороший способ, чтобы написать его в узел (ver4.4) вместо того, чтобы просто еще, если

+0

Я вижу синтаксическую ошибку в '} { elseif (isWin)' – Tushar

+0

Почему бы просто не использовать «cross-spawn»? –

+0

@Tushar - я исправлю :) это просто для примера ... –

ответ

1
switch(process.platform){ 
    case 'windows': 
    // code 
    break; 
    case 'linux': 
    // code 
    break; 
    default: 
    return new Error('give us a real OS pls') 
} 

или

process.platform === 'windows' ? 
    //code windows : 
    //code linux 

Вот еще пища для размышлений. Alternatives для переключения операторов.

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