状況は次のとおりです。
Node.js開発環境でP1とP2の2つのプロジェクトを開発しています。
P1では、2つの単純なモジュール、mod1とmod2の開発が必要でしたP1/lib
。これらはに保存されています。このモジュールの解決はそれぞれ、外部の依存関係をで見つけます P1/node_modules
。P1に必要な依存関係は、npmを介してこのフォルダーにインストールされています。
他のプロジェクトP2でmod1を再利用したい画像ですが、ここで私の疑問が浮かび上がりました。私はできた...
mod1をにコピーするだけ
P2/lib
です。レプリケーションなので、このオプションは考慮していません。P2から、P1からmod1を参照します
require($PROJECTS_DIR + '/P1/lib/mod1')
。この方法では、P2はP1に依存します。mod1を上位レベルのディレクトリに配置するか、NODE_PATHを使用して、P1とP2がdointだけで解決できるようにし
require('mod1')
ます。ただし、展開するときは、少し汚いように見えるこの上位レベルのディレクトリも展開する必要があります。mod1をnpmモジュールとして扱い、どのプロジェクトや環境にも簡単にインストールできるようにしたいのですが、この特定のケースでは、モジュールをnpmに公開できないので、プロジェクト固有のものです。プライベートnpmリポジトリを作成してmod1を中に入れることができます。これの要点は、本番環境からもアクセスできるように設定することです。その価値はありますか?
それをすべてまとめて
node_modules
どうですか?(外部の依存関係と自分のライブラリ)。`require( 'module')のようにモジュールが必要なだけなので、それは素晴らしいことです。しかし、それもかなり汚いようです。npm link
展開時にどのように機能するかわかりません。シンボリックリンクを作成します。GitまたはSVNを介してコードをコミットする場合は、このリンクはたどられません。npm install
本番環境で実行すると、リンクされたモジュールもインストールされますか?
上記のどれも私を完全に満足させません。これらの1つが適切かどうか、または他の提案があるかどうかはわかりませんが、他のプロジェクトで簡単に再利用できるように、独自のプライベートライブラリを構築するための好ましい方法はありますか?
npm link
本番環境でも使用しなければならないということですか?または、npm install
それはpackage.jsonでそれを指定する任意の方法で暗黙的ですか?