npm3 では、node_modules
フォルダーがフラットになるように依存関係のフラット化を使用するようになりました。どうやらそれは必ずしも真実ではありません。私は自分のアプリケーションを持っています。それに名前を付けましょう。A
私が開発中のモジュールですB
。そのモジュールにはgulp
、依存関係といくつかのgulp
プラグインがありますgulp-rename
。私はアプリのフォルダーにgulp
とがあることを期待していました(依存関係があるため)。しかし、そうではありません。実際にはありますが、それ自体はフォルダーにあります。gulp-rename
node-modules
A
B
gulp-rename
A/node_modules
gulp
A/node_modules/B/node_modules
なぜこれが起こっているのか手がかりはありますか?
アップデート
問題をこの特定のケースに絞り込みました。
A
私が開発しているアプリとモジュールを持っているB
. そのモジュールにはgulp
依存関係があり、bin
次のように定義された package.json プロパティがあります (B
の package.json):
javascript
"bin" {
"gulp": "<some_valid_path>"
}
gulp
アプリのnode-modules
フォルダーにあることを期待していましたA
(B
依存関係としてあり、npm3依存関係が平坦化されているため)。しかし、明らかにnpmはそれをA/node_modules/B/node_modules
フォルダーに残します。それは意図された動作であり、その理由は何ですか?