2017-01-13 9 views
1

最近、Angular 2アプリの開発から始めましたが、何か問題が発生しました。私は特定のノードモジュールを使用する複数のプロジェクトを持っており、これらのモジュールをプロジェクトフォルダにnpm installでインストールしました。しかし、私は考え始めました:もし私がたくさんのプロジェクトを持っていて、それらのプロジェクトごとにノードモジュールをインストールすると、相当なディスクスペースが必要になり、いくつかのノードモジュールが(複数のプロジェクトで)複数インストールされています。だから私は、フォルダモジュールをいくつかの共通のフォルダにインストールして、私のプロジェクトが使用するライブラリのようなものにする方法を見つけようとしました。しかし、別のプロジェクトで同じモジュールの異なるバージョンが必要な場合はどうでしょうか?同じフォルダに複数のモジュールバージョンをインストールするにはどうしたらいいですか?node_modules開発段階の場所

多分私は完全に間違った方法を考えているので、私はあなたの解決策を求めています。開発段階でノードモジュールを処理する一般的な方法はありますか?各プロジェクトには独自のノードモジュールフォルダがありますか、または共通のフォルダがありますか?最も一般的なアプローチは何ですか(もしあれば)?

ありがとうございます!

EDIT:このページはNexus Repository docsで見つかりました。npmレジストリをプロキシすることは、私がやろうとしている "重複ダウンロードを減らす"と言います。私はすでにいくつかのプロキシnpmリポジトリを作成していました。プロキシurlを.npmrcファイルに指定しました。 npm installを実行すると、資産とコンポーネントがプロキシリポジトリに追加されますが、問題は解決しません。ノードモジュールもプロジェクトのフォルダにインストールされます。 Nexusリポジトリを使用して「重複ダウンロードを減らす」方法を理解していません。誰も私にそれを達成する方法を説明することはできますか?

+0

プロジェクトごとに個別のnode_modulesフォルダを作成することをお勧めします。グローバルなレベルで使用されているパッケージがあれば、それらのモジュールをグローバルにインストールして、すべてのプロジェクトにアクセスすることができます。共通のnode_modulesフォルダが必要な場合は、 webpackまたはrollupのようなバンドラを使用して各プロジェクトで必要なモジュールを設定する –

答えて

2

通常、プロジェクト全体でnode_modulesを共有することは何もありません。ノードdocumentationから:

If the module identifier passed to require() is not a core module, 
and does not begin with '/', '../', or './', then Node.js starts at 
the parent directory of the current module, and adds /node_modules, 
and attempts to load the module from that location. Node will not 
append node_modules to a path already ending in node_modules. 
If it is not found there, then it moves to the parent directory, 
and so on, until the root of the file system is reached. 

これは、パッケージを参照するたびに正しいパスを記述するためです。

関連する問題