2012-11-02 2 views
24

私は作業を始めたばかりのノードアプリケーションがあり、実行しようとするたびに、モジュールがないと言います。私はちょうど各モジュールのためにnpm install ...を使用していましたが、それらの約10を行った後、手動でそれぞれをインストールせずにnpmがノードアプリケーションのために必要なすべてのモジュールをプルダウンする方法があるかどうか疑問に思っています。それはできますか?ノードアプリケーションに欠けているモジュールをすべてインストールできますか?

答えて

35

はい、依存関係がpackage.jsonにリストされている限りです。 package.jsonが含まれているディレクトリで

、ちょうどタイプ:

npm install 
1

をインストールし、自動的にこの新たにインストールされたモジュールでpackage.jsonを更新するためにnpm install yourModule --saveを実行することができます。

npm installを2度実行すると、以前に追加されたすべての依存関係がインストールされるため、すべての依存関係を1つずつ再インストールする必要はありません。

11

npmモジュールを作成して、不足しているモジュールのインストールを自動的に処理しました。

npm-install-missing

それは自動的にすべてのアプリケーションの依存関係とサブ依存関係をインストールします。これは、サブモジュールが正しくインストールされていない場合に便利です。

+1

これは、必要なバージョンの依存関係を検出することさえあります。 – msangel

+0

これを試してみると、モジュールが見つからないことがわかります。npm listを実行すると、不足している依存関係がロードされています。 –

-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

関連する問題