当我在NPM上搜索包时,我想看到包的大小(KB或MB等)。NPM似乎没有显示这一信息。
我如何确定一个NPM包会给我的项目增加多少膨胀?
当我在NPM上搜索包时,我想看到包的大小(KB或MB等)。NPM似乎没有显示这一信息。
我如何确定一个NPM包会给我的项目增加多少膨胀?
当前回答
我已经创建了一个工具npm download size,它可以检查给定npm包的tarball大小,包括依赖树中的所有tarball。这可以让您了解预先添加依赖项的成本(安装时间、磁盘空间、运行时资源、安全审计……)。
在上图中,Tarball size是package的tar.gz, Total size是所有Tarball的大小。这个工具非常基本,但它做到了它所说的。
还可以使用cli工具。你可以这样安装:
npm i -g download-size
像这样使用它:
$ download-size request
request@2.83.0: 1.08 MiB
源代码可在Github: api, cli工具和web客户端。
其他回答
看看这个模块成本项目。这是一个npm包,它会列出包的大小和子元素的数量。
安装: NPM install -g cost-of-modules
用法: 在您工作的目录中运行cost-of-modules。
你可能想要衡量的是,如果你要将一个包添加到你的应用程序包中,它的影响。大多数其他答案只会估计源文件的大小,这可能不准确,因为内联注释,长var名称等。
我做了一个小工具,它会告诉你包的最小+ gzip大小后,它进入你的bundle -
https://bundlephobia.com
我创建bundlejs正是出于这个原因。Bundlejs被设计成一个快速且始终可访问的在线捆绑器,可以摇树,分析捆绑包,缩小,gzip & brotli捆绑包,给出压缩大小,并返回完全捆绑的代码,您可以在https://bundlejs.com查看它。
源代码可在GitHub上https://github.com/okikio/bundlejs获得
然而,如果你的目标只是检查包的npm安装大小,我强烈推荐https://packagephobia.com。我没有创建packagephobia,但当涉及到检查js包大小时,它是一个高质量的工具,涵盖了其他细分市场
Howfat是另一个显示总包装大小的工具:
npx howfat jasmine
一个“快速而肮脏”的方法是使用curl和wzrd。在快速下载压缩包,然后grep文件大小:
curl -i https://wzrd.in/standalone/axios@最新| grep内容长度
下载的包被压缩了,但没有压缩到gzip,但是当您比较两个或多个包时,您可以很好地了解包的相对大小。