2016-11-30 123 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是受欢迎的。