2014-02-14 25 views
0

我試圖從腳本內部運行component.io方法,但這不應該特定於component.io。在node.js中運行命令行模塊方法

在正常情況下,在終端,我會寫。 component install安裝所有依賴項。

我試過不同的方法,但似乎無法得到工作(或顯示任何輸出)。

首先我想包括組件作爲一個模塊

var componentIO = require('component'); 
componentIO.install(); 

不幸的是,當我這樣做,沒有任何反應。

當我輸出console.log(componentIO)時,它作爲對象install: [function]的一部分輸出,所以我認爲我正確地調用它。

我嘗試的另一種方法是通過child_process

var cp = require('child_process'); 
var componentIO = cp.fork('component'); 
componentIO.send('install'); 

但同樣,我沒有看到在終端的任何輸出。

我是否採用錯誤的方法從節點內運行命令?

回答

1

您可以使用component-installer模塊來安裝組件。

var Installer = require('component-installer'); 
var installer = new Installer(__dirname); 

installer.on('package', function (pkg) { 
    console.log('installing', pkg.name, pkg.version); 
}); 

// arguments: (package name, package version) 
installer.installPackage('matthewmueller/io', 'master'); 

console.log('Packaged installed.'); 
+0

雖然這可能是關於component.io的正確答案,但我實際上試圖找到更普遍適用的方法。 – pedalpete

+0

@pedalpete通常的做法是將'component'的完整路徑傳遞給'cp.fork()'。您可以在終端中運行「哪個組件」以獲取完整路徑。 – bnuhero