2016-11-30 139 views
2

有沒有一種方法可以在npm中指定依賴關係的子集,並帶有別名或「特徵標籤」?也就是說,如果有人知道他們只會使用我的軟件包的一些有限的功能子集,他們可以指定這些功能,並且在npm install上只下載與這些功能相關的依賴關係?在npm中安裝依賴關係的子集

我的軟件包有大量的依賴關係,需要將近半小時才能安裝,但大多數用戶只需要其功能的一個子集。我正在考慮如何將依賴關係劃分爲devDependencies和dependencies,但使用n個組而不是這兩個。例如:

npm install --feature feature1 --feature feature2 

從閱讀the docs,我覺得這裏的答案是「不」,但是這將是你的這種情況建議?將軟件包拆分成更小的插件包,讓用戶安裝他們想要的插件?我不想爲用戶配置太複雜的東西。

+0

http://softwareengineering.stackexchange.com/q/238257/255832的副本 –

回答

1
用超級晚答覆

這裏:

簡單的答案是否定的,NPM不是爲這主要是因爲依賴樹是令人難以置信的大,而且這種使用情況可能真的只是對於大多數用戶複雜的事情。話雖如此,我寫了一個包來做。

我的包是install-subset,並且可以與npm install -g install-subset

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

全球的裝機量基本上你建立一個名爲亞白名單和黑名單在你的package.json這樣的:

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

然後用它來呼叫,例如install-subset test

這會暫時重寫你的package.json,不把這些包列入黑名單,然後恢復它,這取決於包可以節省很多時間和帶寬。

也適用於紗線,是開源的問題/ PR是受歡迎的。