2

ローカルで実行し、CentOS サーバーにデプロイするノード プロジェクトがあります。いくつかの依存関係があり、そのうちの 1 つはコンパイル済みの依存関係に依存しています。

npm を使用すると、npm install を使用して依存関係をローカルでコンパイルでき、うまく機能します。ただし、これは展開サーバー用にコンパイルされていないため、アップロードすると壊れます。

CentOS ボックスで依存関係をコンパイルできます。サーバーでは動作しますが、ローカル環境では壊れます。

ノードがローカル環境でグローバル依存関係を使用し、サーバーでローカル依存関係を使用するように強制できるように、回避策を考えられる人はいますか?

ありがとう!


アップデート:

今のところこれを行う方法を見つけました。エレガントではありませんが、機能します:

  1. ローカル環境で npm install を実行します
  2. node_modules フォルダの名前を node_modules_local に変更します
  3. サーバーで npm install を実行します
  4. すべてのrequire()パスに変数を追加する
  5. ローカル環境変数を「開発」に設定します
  6. 開発モードであるかどうかを確認し、必要な場合は、require path 変数を に設定します./node_modules_local
4

1 に答える 1

2

依存関係のソース コードをチェックインします (コンパイル済みの依存関係と js のみの依存関係)。アプリをデプロイするときは、サーバーで「npm rebuild」を実行します。これが公式に推奨されている方法のようです。詳細については、 http://www.mikealrogers.com/posts/nodemodules-in-git.htmlを参照してください。

于 2012-02-07T14:10:59.597 に答える