7

設定:

  • npm installすべてのアプリの依存関係をインストールするために実行されるインターネット接続のある VM 。結果は、アプリとその依存関係を含むフォルダーになりますnode_modules

  • アプリ モジュールの間には fi:mongooseがあり、インストール時node-gypにネイティブの BSON 拡張機能をコンパイルするために使用されます。

  • アプリ フォルダーは、インターネット接続なしで別の VM にコピーされ、完全に機能しますが、コンパイルされた拡張機能は機能しませんが、その.jsフォールバックは機能します。

質問:

インターネットに接続せずに、新しい VM ですべてのアプリ モジュールを再インストール/再コンパイル/再生成するにはどうすればよいですか?

4

1 に答える 1

19

これはまさにnpm rebuildコマンドが行うことです。アプリが新しい VM にコピーされた後、アプリ ディレクトリ内で実行するだけnpm rebuildで、現在の CPU アーキテクチャとノード バージョンに一致するようにバイナリ アドオンが再コンパイルされます。最初npm installのコピーが完全に成功した場合npm rebuild、2 番目の VM では何もダウンロードする必要はありません。2 番目の VM に適度に近いバージョンのノードと、適切な低レベルのコンパイラ、ライブラリなど (たとえば、debian の build-essential と python) があることを確認してください。

于 2014-12-02T19:38:16.737 に答える