当我在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客户端。
其他回答
Howfat是另一个显示总包装大小的工具:
npx howfat jasmine
自从https://github.com/aholachek/bundle-wizard发布以来,我一直喜欢它。
它在已部署的站点上工作:npx bundle-wizard reddit.com 它适用于您的本地项目: 对于多页面的应用程序/网站,调整最后一行与你想检查的路径。 NPM运行构建 NPX serve -s build NPX bundle-wizard localhost:5000/
交互式视图对于发现在哪里非常有帮助。
你可能想要衡量的是,如果你要将一个包添加到你的应用程序包中,它的影响。大多数其他答案只会估计源文件的大小,这可能不准确,因为内联注释,长var名称等。
我做了一个小工具,它会告诉你包的最小+ gzip大小后,它进入你的bundle -
https://bundlephobia.com
你可以查看npm-module-stats。它是一个npm模块,可以获取npm模块的大小及其依赖项,而无需安装或下载该模块。
用法:
var stats = require("npm-module-stats");
stats.getStats("glob").then((stack) => {
let dependencies = Object.keys(stack);
let totalSize = dependencies.reduce((result, key, index) => {
return result + stack[key].size;
}, 0);
console.log('Total Size in Bytes ', totalSize);
console.log('Total Dependencies ', dependencies.length-1);
}).catch((err) => {
console.error(err);
});
它可能看起来有点啰嗦,但它解决了您恰当描述的问题。
我已经创建了一个工具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客户端。