当我在NPM上搜索包时,我想看到包的大小(KB或MB等)。NPM似乎没有显示这一信息。
我如何确定一个NPM包会给我的项目增加多少膨胀?
当我在NPM上搜索包时,我想看到包的大小(KB或MB等)。NPM似乎没有显示这一信息。
我如何确定一个NPM包会给我的项目增加多少膨胀?
当前回答
为了检查不同的包对你的包的影响。你可以查看source-map-explorer。
安装:
npm install -g source-map-explorer
用法:
source-map-explorer bundle.min.js
source-map-explorer bundle.min.js bundle.min.js.map
source-map-explorer bundle.min.js*
source-map-explorer *.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);
});
它可能看起来有点啰嗦,但它解决了您恰当描述的问题。
尽量使用包装大小。
npx package-size vue,vue-router,vuex react,react-dom,react-router,redux
https://github.com/egoist/package-size
你可能想要衡量的是,如果你要将一个包添加到你的应用程序包中,它的影响。大多数其他答案只会估计源文件的大小,这可能不准确,因为内联注释,长var名称等。
我做了一个小工具,它会告诉你包的最小+ gzip大小后,它进入你的bundle -
https://bundlephobia.com
今年早些时候,我创建了“Package Phobia”,希望能在npmjs.com上获取包装大小信息,并跟踪包装膨胀的情况。
https://packagephobia.com
这是为了在你为服务器端依赖项(如express)或开发依赖项(如jest)运行npm install后测量磁盘空间。
您可以在这里阅读关于此工具和其他类似工具的更多信息:https://github.com/styfle/packagephobia
更新2020
“解包大小”(基本上是发布大小)可在npmjs.com网站上与“总文件”一起使用。然而,这不是递归的,这意味着npm的安装可能会更大,因为一个包可能依赖于许多包(因此包恐惧症仍然相关)。
还有一个未决的RFC用于从CLI打印此信息的特性。
如果你使用Visual Studio Code,你可以使用一个名为Import Cost的扩展。
这个扩展将在编辑器中内联显示导入包的大小。扩展利用webpack与babili-webpack-plugin,以检测导入的大小。