2015-09-10 76 views
1

接下來的劇本要想到所有文件夾和安裝依賴如何快速檢查是否NPM運行安裝節點

var fs   = require("fs"), 
    path   = require("path"), 
    child_process = require("child_process"); 

var rootPath = "./"; 

var dirs = fs.readdirSync(rootPath) 
    .filter(function(dir) { 
     return fs.statSync(path.join(rootPath, dir)).isDirectory(); 
    }); 

var install = function() 
{ 
    if (dirs.length === 0) 
     return; 

    var dir = dirs.shift(); 
    console.log("installing dependencies for : '" + dir + "'"); 

    child_process.exec("npm prune --production | npm install", { 
     cwd: rootPath + dir 
    }, install); 
}; 
install(); 

如何NPM運行只有在的package.json文件夾中存在install命令?

回答

1

試試這個命令:

ls | grep package.json && (npm prune --production | npm install) 

我假設你在Linux上運行此。

從理論上講,如果我沒有記錯,命令ls的輸出中會被管道輸送到grep命令,並且僅當grep命令就找到一個結果,然後(npm prune --production | npm install)將要執行的命令。

在寫這篇文章的時候,這並沒有經過我的測試,因爲我現在沒有Linux機器來測試它,但我希望它能夠正常工作。

UPDATE: 的高效的指揮,按照丹的評論將

test -f package.json && (npm prune --production | npm install) 
+1

'LS | grep package.json'是做'test -f package.json'的一種可怕的方式。 –

+0

謝謝Dan,它的工作原理! – francesca

+0

@DDD的建議請如何獲得有意義的日誌呢? – francesca