2015-10-03 19 views
9

npmを使用すると予期しない動作が発生します。たとえば、コマンドで明示インストールするとき:npm node_modulesが正しくネストされていませんか?

npm install express 

私は名前のフォルダは、「node_modules」ディレクトリに作成されます「表現」と、それは依存関係が「node_modules」内に設置されるだろうということことを期待するサブをこのフォルダ内のディレクトリ。

"express"フォルダが作成されていますが、すべての依存関係がプロジェクトフォルダのルート "node_modules"ディレクトリ(expressと同じレベル)に追加されていて、 "express "フォルダ。

どうしてですか? (npm v3.3.5を使用)

+1

好ましい:この答えをhttp://stackoverflow.com/a/35227212/580651 – luchaos

答えて

13

これはnpm @ 3の設計変更です。デフォルトで重複排除されています。参照:

フラット、フラット、フラット!

あなたの依存関係は今すぐインストールされます最大平ら。 が可能な限り、すべての依存関係とその依存関係、およびTHE 依存関係は、プロジェクトのnode_modulesフォルダにインストールされ、 はネストされません。 2つ(または 以上)のモジュールが矛盾する依存関係を持つ場合にのみ、モジュールの下にネストされたモジュールが表示されます。ケースネストで

https://github.com/npm/npm/blob/ff47bc138e877835f1c0f419fea5f5672110678a/CHANGELOG.md#flat-flat-flat

https://github.com/npm/npm/issues/6912

+0

どうもありがとう!私はそれが設定オプションか変更だと思ったが、私のgoogleクエストでそれを見つけることができなかった:] – masterwok

+0

あなたは大歓迎! – JMM

+1

ネストされた依存関係を取り戻す方法はありますか?つまり、私はノードモジュールのフォルダーの上に131ディレクトリを詰め込み、攻撃を仕掛けています。それは本当に圧倒し、私をイライラさせる。 – Abdel

関連する問題