当我在NPM上搜索包时,我想看到包的大小(KB或MB等)。NPM似乎没有显示这一信息。

我如何确定一个NPM包会给我的项目增加多少膨胀?


当前回答

如果你使用Visual Studio Code,你可以使用一个名为Import Cost的扩展。

这个扩展将在编辑器中内联显示导入包的大小。扩展利用webpack与babili-webpack-plugin,以检测导入的大小。

其他回答

我创建bundlejs正是出于这个原因。Bundlejs被设计成一个快速且始终可访问的在线捆绑器,可以摇树,分析捆绑包,缩小,gzip & brotli捆绑包,给出压缩大小,并返回完全捆绑的代码,您可以在https://bundlejs.com查看它。

源代码可在GitHub上https://github.com/okikio/bundlejs获得

然而,如果你的目标只是检查包的npm安装大小,我强烈推荐https://packagephobia.com。我没有创建packagephobia,但当涉及到检查js包大小时,它是一个高质量的工具,涵盖了其他细分市场

你可以查看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);
});

它可能看起来有点啰嗦,但它解决了您恰当描述的问题。

Howfat是另一个显示总包装大小的工具:

npx howfat jasmine

尽量使用包装大小。

npx package-size vue,vue-router,vuex react,react-dom,react-router,redux

https://github.com/egoist/package-size

一个“快速而肮脏”的方法是使用curl和wzrd。在快速下载压缩包,然后grep文件大小:

curl -i https://wzrd.in/standalone/axios@最新| grep内容长度

下载的包被压缩了,但没有压缩到gzip,但是当您比较两个或多个包时,您可以很好地了解包的相对大小。