如何查看npm包的大小?

ari*_*its 103 size package npm

当我在NPM上搜索包时,我希望看到包大小(以KB或MB为单位).NPM似乎没有显示此信息.

如何确定NPM包将为项目添加多少膨胀?

Shu*_*dia 143

您可能想要衡量的是,如果要将其添加到您的应用包中,则包的影响.大多数其他答案仅估计源文件的大小,由于内联注释,长var名称等可能不准确.

我做了一个小实用程序,它会告诉你包裹进入你的包后min + gzipped大小 -

https://bundlephobia.com

  • 此链接:[`https:// cost-of-modules.herokuapp.com`](https://cost-of-modules.herokuapp.com)现在指向[`https:// bundlephobia.com`]( https://.bundlephobia.com)一个非常有用的工具顺便说一句. (5认同)
  • 谢谢!这是一个非常不错的工具! (3认同)
  • @Black应该备份 (3认同)
  • 这很酷,应该将其添加到每个软件包的npm页面中 (3认同)
  • 这是非常伟大和准确的!我希望它作为 VScode 中的扩展存在,导入成本有时不是很准确 (3认同)
  • 美丽的用户界面!谢谢,这正是我一直在寻找的东西。但是,永久使用超大型包装。 (2认同)
  • 他们还推出了“package.json”扫描仪的测试版! (2认同)

Lir*_*dav 64

看看这个模块成本项目.这是一个npm包,它将列出包的大小和子项的数量.

安装: npm install -g cost-of-modules

用法:cost-of-modules在您正在使用的目录中运行.

在此输入图像描述

  • 这个包会产生什么丑陋的副作用? (7认同)
  • 使用标志 --no-install `npx cost-of-modules --no-install` (6认同)
  • 有点矫枉过正,它需要在计算之前重新安装所有模块。但是可以完成工作。 (3认同)
  • 不要使用此程序包-它会创建一个名为nodemodules.bak的工件文件夹,该文件夹会产生难看的副作用 (3认同)
  • 安装或重新安装总是会过度杀伤力,我也在寻找无法安装回来的选项。 (2认同)

arv*_*ve0 20

我创建了一个工具,npm下载大小,它检查给定npm包的tarball大小,包括依赖树中的所有tarball.

下载webpack的大小

在上图中,Tarball大小是包的tar.gz,总大小是所有tarball的大小.该工具非常基础,但它完成了它所说的.

一个命令行工具也可以.你可以像这样安装它:

npm i -g download-size
Run Code Online (Sandbox Code Playgroud)

并像这样使用它:

$ download-size request
request@2.83.0: 1.08 MiB
Run Code Online (Sandbox Code Playgroud)

这是一个asciinema演示.

源代码可在Github上获得:api,cli工具Web客户端.


sty*_*fle 16

我在今年早些时候创建了Package Phobia,希望能够将包大小信息输入npmjs.com,并随着时间的推移跟踪包的膨胀.

https://packagephobia.now.sh

IMG

这是为了在运行npm install服务器端依赖项之后测量磁盘空间,例如express或依赖于dev jest.

您可以在此处阅读有关此工具和其他类似工具的更多信息:https://github.com/styfle/packagephobia


注意:虽然npm团队没有改变网站的动作,但他们正在考虑将安装的大小添加到cli.有关详细信息,请参阅RFC 1.

  • 这很好,但为什么它的结果与捆绑恐惧症有如此明显的不同呢?例如比较 lodash.lowerfirst 的结果 (3认同)
  • @DanyalAytekin因为他们正在衡量不同的事物。简短的回答:如果您正在寻找前端软件包,请使用BundlePhobia。如果您正在查看后端软件包,请使用PackagePhobia。如果您有兴趣,可以在[自述文件](https://github.com/styfle/packagephobia/blob/master/README.md#how-is-this-different)中找到更多详细信息。 (2认同)

Bla*_*ack 11

如果您使用webpack作为模块捆绑包,请查看:

我绝对推荐第一个选项.它在交互式树形图中显示大小.这有助于您在捆绑文件中查找包的大小.

Webpack Bundle Analyzer

这篇文章中的其他答案显示了项目的大小,但您可能没有使用项目的所有部分,例如树摇动.其他方法可能不会显示您准确的大小.


c01*_*01r 9

尝试使用package-size

npx package-size vue,vue-router,vuex react,react-dom,react-router,redux
Run Code Online (Sandbox Code Playgroud)

https://github.com/egoist/package-size 包装尺寸npm


Rah*_*rma 7

在发布 npm 包之前,您可以使用以下命令检查包的大小。

npm publish --dry-run

我已附上我的 npm 包的结果。

在此输入图像描述


kyw*_*kyw 6

如果您使用 Visual Studio Code,则可以使用名为Import Cost 的扩展。

此扩展将在编辑器中内联显示导入包的大小。该扩展使用 webpack 和 babili-webpack-plugin 来检测导入的大小。


Ale*_*rov 6

howfat是另一种可以显示总包大小的工具:

npx howfat jasmine
Run Code Online (Sandbox Code Playgroud)

屏幕截图