2016-11-30 9 views
2

npmに依存関係のサブセットを指定する方法は、エイリアスまたは "機能タグ"を使って指定できますか?つまり、自分のパッケージの機能の一部の限定されたサブセットのみを使用することを誰かが知っている場合、それらの機能を指定することができ、npm installには、それらの機能に関連する依存関係をダウンロードするだけですか?依存関係のサブセットをnpmでインストールする

パッケージには非常に多くの依存関係があり、インストールには約30分かかりますが、ほとんどのユーザーは機能のサブセットのみが必要です。依存関係をdevDependenciesと依存関係にどのように分けることができるかというようなことを考えていますが、その2つではなくn個のグループがあります。たとえば:

npm install --feature feature1 --feature feature2 

the docsを読んでから、私はここで答えは「ノー」だと思いますが、何がこのような場合のために、あなたの提案でしょうか?パッケージをより小さいプラグインパッケージに分割し、ユーザーに必要なプラグインをインストールさせますか?ユーザーが設定するには複雑すぎるものは欲しくない。

+0

http://softwareengineering.stackexchange.com/q/238257/255832の重複 –

答えて

1

ここでスーパー返事が遅れを持つ:

短い答えはノーである依存関係ツリーが非常に大きく、このユースケースは、実際にはほとんどのユーザーのために物事を複雑にする可能性があるため、NPMは、主にこのために設計されていませんでした。それが言われて、私はそれを行うためのパッケージを書いた。

私のパッケージには、基本的に、あなたがこのようなあなたのpackage.jsonで名前のサブセットのためのホワイトリストとブラックリストを構築install-subsetあり、そしてnpm install -g install-subset

https://www.npmjs.com/package/install-subset

でグローバルにインストールすることができます。

"subsets": { "build": { "whitelist": [ "babel-cli", "dotenv" ] }, "test": { "blacklist": [ "eslint", "lint-rules", "prettier" ] } }

次に、たとえばinstall-subset test

01と呼んでください。

これは一時的にあなたのpackage.jsonを書き換えてブラックリストに載せたパッケージをインストールせずに復元します。パッケージによっては、時間と帯域幅を大幅に節約できます。

糸でも動作し、オープンソースであり、問​​題/ PRは大歓迎です。

関連する問題