45

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

4

5 に答える 5

82

はい、依存関係が にリストされている限りpackage.json

を含むディレクトリでpackage.json、次のように入力します。

npm install
于 2012-11-02T05:21:52.983 に答える
16

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

npm-install-missing

すべてのアプリの依存関係とサブ依存関係が自動的にインストールされます。これは、サブモジュールが正しくインストールされていない場合に役立ちます。

于 2013-11-12T16:49:04.070 に答える
4

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

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

于 2012-11-03T03:27:13.073 に答える
1

このためのスクリプトを作成しました。
スクリプトの先頭に配置すると、実行時にアンインストールされたモジュールがインストールされます。

(function () {
  var r = require
  require = function (n) {
    try {
      return r(n)
    } catch (e) {
      console.log(`Module "${n}" was not found and will be installed`)
      r('child_process').exec(`npm i ${n}`, function (err, body) {
        if (err) {
          console.log(`Module "${n}" could not be installed. Try again or install manually`)
          console.log(body)
          exit(1)
        } else {
          console.log(`Module "${n}" was installed. Will try to require again`)
          try{
            return r(n)
          } catch (e) {
            console.log(`Module "${n}" could not be required. Please restart the app`)
            console.log(e)
            exit(1)
          }
        }
      })
    }
  }
})()
于 2014-02-03T10:37:38.100 に答える