2016-05-10 47 views
1

我正在使用node/javascript構建一個命令行工具,並且希望將它作爲npm模塊提供。該工具需要包裝shell/windows批處理腳本,但是如何爲不同平臺安裝不同的腳本?在package.json我有如何爲不同平臺安裝不同的文件

"bin" : { 
    "lookup-bat" : "./bin/lookup.bat", 
    "lookup-sh" : "./bin/lookup.sh" 
} 

但我想有相同的命令名稱,無論平臺。這可能嗎?

回答

0

通常你不介意。

通常,./bin/lookup是一個js文件,以相應的shebang #!/usr/bin/env node開頭。

NPM完成剩下的工作。

如果程序行爲需要與運行時操作系統不同,則應在程序中實現一種if(process.platform.match(/win/))

+0

事情是,節點腳本不是平臺相關的,但包裝腳本是。包裝腳本使用節點腳本的輸出。 – claesv

+0

'但包裝腳本是'呃?爲什麼會這樣?不管在做什麼腳本,我相信你應該用跨平臺工具來做:NodeJS –

+0

包裝腳本會'cd <節點腳本的輸出>',cd不能在節點腳本內完成,因爲它在子shell中運行。 – claesv

相關問題