私はいくつかのノードパッケージをインストールしていますが、NPMが重複したものを作成していることがわかりました。ノードパッケージマネージャ(NPM)が重複パッケージを生成しているようです
例えば、私は最初に、たくさんの依存関係をインストールしたmongooseをインストールしました。それから私はmongodbパッケージをインストールしました。このパッケージはbsonに依存していました。
のMongoDBは、次のディレクトリに存在している:
/usr/local/lib/node_modules/mongodb/
/usr/local/lib/node_modules/mongoose/node_modules/mongodb/
:
は
/usr/local/lib/node_modules/mongodb/
/usr/local/lib/node_modules/mongoose/node_modules/mongodb/
また、BSONは、MongoDBのの依存性はこれらの両方に存在しているため、依存関係の重複に、私は次の異常を持っています
これらはキロバイト単位のファイルであることを認識していますが、これにより多くの冗長性が発生する可能性があります。次のような非常に複雑なツリーになります。
/usr/local/lib/node_modules/[something1]/node_modules/[something2]/node_modules/[something3/.../.../node_modules/[somethingX]/
このシナリオでは、特定の[依存関係]がXレベルの/ usr/local/lib/node_modulesに存在する可能性があります。
私の主な関心事は、これらのモジュールの更新に関するものです。私は、異なるバージョンの同時モジュールが同時にインストールされているとは想像もつきません。
すべてを直接/ usr/local/lib/node_modules /に置いて、相互参照の依存関係を作成する方が簡単ではないでしょうか?
これは、さまざまなモジュールをインストールし、さまざまなプロジェクトを開始した後、多忙な階層を作りませんか? NPMで再帰的な更新を実行する方法はありますか? – zcserei
人々はいつもアップデートを続ける大きなモジュールではなく、モジュールの1つのコピーだけがインストールされるのではなく、いつか終了する小さなモジュールをコーディングしています。だから、ほとんどのノードモジュールが小さいので、現実にはそれほど大きな問題ではないことが分かります。そうでなければ、substack(James Halliday - http://substack.net/)をしばらく聞いています。しばらく前に、私はこの正確な問題に関するいくつかの考えをここに掲載しました:https://gist.github.com/balupton/5308717おそらくそれは私に時代を迎えてくれましたこれも同様です:) – balupton
'もし[両方の] ...同じ[]バージョンを許可すると、1つのコピーのみがインストールされます。なぜそれはしないのですか?私は1つのコピーしか使用しないで、いくつかのコピーがインストールされている特定のケースを持っています。なぜなら、なぜか分かりませんが、インストールにはかなりの時間がかかります。 – Michael