当我在NPM上搜索包时,我希望看到包大小(以KB或MB为单位)。 NPM似乎没有显示这些信息。
如何确定NPM包添加到项目中的膨胀程度?
答案 0 :(得分:110)
您可能想要衡量的是,如果要将其添加到您的应用包中,则包会产生什么影响。大多数其他答案仅估计源文件的大小,这可能由于内联注释,长var名称等而不准确。
我制作了一个小实用程序,它会告诉你包裹的最小+ gzip大小>>它进入你的包裹 -
答案 1 :(得分:58)
看看这个cost-of-modules项目。它是一个npm包,它将列出包的大小和子数。
安装:
npm install -g cost-of-modules
使用方法:
在您正在使用的目录中运行cost-of-modules
。
答案 2 :(得分:15)
我创建了一个工具npm download size,它检查给定npm包的tarball大小,包括依赖关系树中的所有tarball。
在上图中, Tarball size 是包的tar.gz,总大小是所有tarball的大小。该工具非常基础,但它完成了它所说的。
还可以使用cli tool。您可以这样安装:
npm i -g download-size
并像这样使用它:
$ download-size request
request@2.83.0: 1.08 MiB
源代码可在Github上找到:api,cli tool和web client。
答案 3 :(得分:10)
如果您使用webpack作为模块捆绑包,请查看:
我绝对推荐第一个选项。它在交互式树形图中显示大小。这有助于您在捆绑文件中查找包的大小。
这篇文章中的其他答案显示了项目的大小,但您可能没有使用项目的所有部分,例如树摇动。其他方法可能无法显示准确的大小。
答案 4 :(得分:9)
我在今年年初创建了Package Phobia,希望将软件包的大小信息输入npmjs.com,并随着时间的推移跟踪软件包的膨胀。
这是为了在运行npm install
后针对服务器端的依存关系(例如express
或dev依存关系(如jest
)来测量磁盘空间。
您可以在以下自述文件中了解有关此工具和其他类似工具的更多信息:https://github.com/styfle/packagephobia
注意:尽管npm团队没有改变网站的动议,但他们正在考虑将已安装的大小添加到cli中。有关更多信息,请参见RFC 1。
答案 5 :(得分:4)
答案 6 :(得分:2)
您可以查看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);
});
它可能看起来有点冗长,但它可以解决您所描述的问题。
答案 7 :(得分:2)
A"快速&脏"方法是使用curl和wzrd.in快速下载缩小的包,然后grep文件大小:
curl -i https://wzrd.in/standalone/axios@latest | grep Content-Length
下载是缩小的但不是gzip,但是当你比较两个或更多个包时,你会很清楚包的相对大小。
答案 8 :(得分:2)
如果您使用Visual Studio Code,则可以使用名为Import Cost的扩展程序。
此扩展程序将在编辑器中以导入包的大小显示内联。该扩展使用带有babili-webpack-plugin的webpack来检测导入的大小。
答案 9 :(得分:1)
答案 10 :(得分:0)
为了检查不同包对您的包的影响。您可以查看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
这将打开您的缩小包中空间使用情况的可视化。
答案 11 :(得分:0)