TL; DR:パッケージの依存関係の依存関係を別のパッケージに変更するにはどうすればよいですか?たとえば、パッケージAの依存関係パッケージBをパッケージCに変更したいが、パッケージAのみに変更したい(つまり、パッケージAの依存関係を上流に変更したくない)。npmが依存関係の依存関係を別のパッケージに解決させるにはどうすればよいですか?
私はLeafletのプラグインを作成しています。リーフレットはNPMパッケージとして提供されています(また、完成したら私のプラグインもあります)。私のプラグインが拡張する別のプラグインもあります。Esri-Leafletには、リーフレットが依存しています。
マイプラグインでは、自分のコードのテストフレームワークとしてMocha/Chai/Sinonを使用しています。開発中とCIの一部としてNPMスクリプトを使ってこれらのテストを実行します。
リーフレットに依存するテストを実行すると、残念ながらリーフレットはヘッドレスノード環境では利用できないグローバル数(window
など)に依存するため、いくつかのエラーが発生します。幸いなことに、leaflet-headlessと呼ばれる代替パッケージthat was suggestedがあります(興味がある場合は実際にはpretty interesting to seeです)。
私のパッケージのために、Esri-Leafletの依存関係を解決するときに、NPMにリーフレットの無人のリーフレットを使用するよう指示する方法はありますか?つまり、下流のリーフレットの依存関係を削除するか(私のプロジェクトはすでにリーフレットに依存しているので、ヘッドレスにするか)、それをリーフレットなしに変更します。
私はnpm shrinkwrap
を見ましたが、実際のパッケージの依存関係を変更するのではなく、バージョン番号のみを指定できるようです。
私が求めている機能をNPMに持たない場合は、代替ソリューションをお勧めできますか?リーフレットヘッドレスの必要性を排除するためにリーフレット上流のグローバルに依存することをすでに検討しています。