2017-10-09 11 views
1

私はフルとライトの2つのバージョンで配布されているノードライブラリに取り組んでいます。 ライトバージョンは完全なものよりも短い依存関係のリストを使用しており、 私はそれらを異なるエントリーポイントを持つ2つのウェブパック設定を使ってビルドします。 問題は、package.jsonには「依存関係」リストが1つしかないため、実際にライトバージョンが多くの依存関係を必要としなくても、コンシューマがライブラリをインストールしてもそれらのすべてをフェッチするということです。これを解決するアプローチは何ですか?異なる依存関係を持つnpmモジュールの2つのバージョンを公開する

答えて

1

2つの別々のパッケージを作成する必要があると思います。可能であれば、 "lite"バージョンを "完全"バージョンの依存性にして、オーバーラップ量を制限します。

その後、scoped packages、どちらのバージョンに名前を付けて公開することもできます

"name" : "@your-package/full" 

そして:

"name" : "@your-package/lite" 

を別のアプローチは、例えばSequelizeは、そのデータベースドライバで何を行うには、次のようになりますしませんユーザーが特定のドライバを使用しようとすると、その特定のドライバパッケージを最初にインストールする必要があるというメッセージが表示されます。あなたのケースでは、ユーザーがいくつかの "フル"機能を使用しようとしたが、 "lite"バージョンを使用していることが検出された場合は、フルバージョンのインストール方法を示してください。

関連する問題