Yos*_*ner 5 npm package.json npm-install
有没有办法使用别名或“功能标签”来指定 npm 中的依赖项子集?也就是说,如果有人知道他们只会使用我的包功能的某些有限子集,他们可以指定这些功能,并且npm install仅下载与这些功能相关的依赖项?
我的包有大量的依赖项,安装需要近半个小时,但大多数用户只需要其功能的子集。我正在考虑如何将依赖项分为 devDependency 和依赖项,但有 n 个组,而不仅仅是这两个组。例如:
npm install --feature feature1 --feature feature2
Run Code Online (Sandbox Code Playgroud)
通过阅读文档,我认为这里的答案是“否”,但是您对这种情况的建议是什么?将包拆分为更小的插件包并让用户安装他们想要的插件?我不想要用户配置过于复杂的东西。
简短的回答是否定的,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"
]
}
}
Run Code Online (Sandbox Code Playgroud)
然后调用它,例如,install-subset test
这将暂时重写您的 package.json 以不安装那些排除的软件包,然后恢复它,这取决于软件包可以节省大量时间和带宽。
也适用于纱线,是开源的,欢迎提出问题/PR。
| 归档时间: |
|
| 查看次数: |
2531 次 |
| 最近记录: |