2016-08-23 99 views
1

我想例如基於所需的操作系統windows/linux的 創建工廠/或類似的方法,如果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來切換語句。