0

現在、ノード パッケージにはexpressとが必要locomotiveです。と の両方expressに パッケージlocomotiveが必要です。commander

各パッケージ (expressおよびlocomotive) がコマンダーを必要とする場合、これは 2 つの異なるファイルに解決されます。ノードのドキュメントに基づいて、commanderパッケージは 2 回実行され、パッケージの 2 つのマスター コピー (commanderファイルごとに 1 つ) がアプリ内に存在します。

についての私の理解に基づいてrequire.resolve()、require() はマシンのルート ディレクトリ (またはユーザーが許可されている限り) までディレクトリ ツリーを検索し、途中ですべてのディレクトリを検索します./node_modules/commander

commander次に、パッケージ (および他のすべての重複パッケージ) をnode_modulesアプリのルートにあるフォルダーに統合する必要がありますか?

編集 12:58 pm: また、重複したパッケージが同じバージョンではない可能性があることにも気付きました。express持っているcommander 0.6.1locomotive持っていcommander 1.0.4ます。別の依存関係expresslocomotive共有は、それぞれmkdirpat0.3.30.3.4です。

4

1 に答える 1

2

node_modules各パッケージは、インストール時にそれぞれのフォルダーに独自の依存関係をインストールします。

たとえば、特定のバージョンが含まれるexpress独自のフォルダがあり、他のモジュールには独自のフォルダがあります。node_modulescommander

確認するために;

mkdir someNewProject && cd someNewProject
npm install express locomotive

次に、これらのインストールされたモジュールのディレクトリ構造を次のように確認します。

ls node_modules/express
ls node_modules/locomotive

それぞれに依存関係のある独自のnode_modulesフォルダーがあることに注意してください。したがって、一般的なコマンダーパッケージを作成することはお勧めしません。

于 2012-09-26T20:37:50.393 に答える