2012-11-02 56 views
24

我有一個剛剛開始使用的節點應用程序,每次我嘗試運行它時,都會說有一個缺失的模塊。我剛剛爲每個模塊使用了npm install ...,但是在做了大約10個模塊之後,我想知道是否有辦法讓npm爲節點應用下拉所有需要的模塊,而無需手動安裝每個模塊。可以做到嗎?可能爲節點應用程序安裝所有缺少的模塊?

回答

35

是的,只要關係在package.json上市。

在包含package.json目錄,只需鍵入:

npm install 
1

您可以爲了安裝和自動更新package.json這種新安裝的模塊運行npm install yourModule --save

因此,當您第二次運行npm install時,它將安裝先前添加的每個依賴關係,並且不需要逐個重新安裝每個依賴關係。

11

我創建了一個npm模塊來自動處理缺少的模塊。

npm-install-missing

它會自動安裝所有應用程序的依賴和子依賴性。當子模塊安裝不正確時,這很有用。

+1

它甚至檢測到依賴關係所需的版本! – msangel

+0

當我嘗試這個它告訴我,我沒有丟失模塊,雖然當我運行npm列表它加載了缺失和未滿足的依賴關係 –

-1

我爲此編寫了一個腳本。請在第一個需要功能之前添加它:

(function(){ 
    var r=require; 
    require=function (n){ 
     try{ 
      return r(n) 
     } 
     catch(e){ 
      r('child_process').exec('npm i ' + n,function (err,body){ 
       try{ 

        console.log('Module "' +n + '"" not found, try to install. Please restart the app\n' + body) 
        return r(n); 
       } 
       catch(e){ 
       } 
      }) 
     } 
    } 
})() 
+0

這很好,但它失敗了第一次運行,因爲依賴正在安裝時試圖運行文件的其餘部分。在開始運行文件的其餘部分之前,我們如何等待腳本完成? – Dat30

相關問題