gpt4 book ai didi

npm - 使用 npm 安装依赖项的子集

转载 作者:行者123 更新时间:2023-12-05 01:19:11 24 4
gpt4 key购买 nike

有没有办法在 npm 中指定依赖项的子集,使用别名或“功能标签”?也就是说,如果有人知道他们只会使用我的包中某些有限的功能子集,他们可以指定这些功能,然后在 npm install 上,只下载与这些功能相关的依赖项?

我的包有非常多的依赖项,安装需要将近半个小时,但大多数用户只需要其功能的一个子集。我正在考虑如何将依赖关系分为 devDependencies 和依赖关系,但有 n 个组而不仅仅是这两个。例如:

npm install --feature feature1 --feature feature2

来自阅读the docs ,我认为这里的答案是“否”,但您对这种情况有何建议?将包拆分成更小的插件包,让用户安装他们想要的插件?我不想要用户配置太复杂的东西。

最佳答案

简短的回答是否定的,npm 不是为此设计的,主要是因为依赖树非常大,而且这个用例对于大多数用户来说真的只会使事情复杂化。话虽这么说,我写了一个包来做到这一点。

我的包是install-subset,可以用npm install -g install-subset全局安装

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

本质上,您在 package.json 中为命名子集构建包含列表和排除列表,如下所示:

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

然后调用它,例如,install-subset test

这将暂时重写您的 package.json 以不安装排除的那些包,然后恢复它,这取决于包可以节省大量时间和带宽。

也适用于 yarn,是开源的,欢迎提出问题/PR。

关于npm - 使用 npm 安装依赖项的子集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40886871/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com