博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
探寻 webpack_bundle_analyzer 原理
阅读量:4505 次
发布时间:2019-06-08

本文共 1202 字,大约阅读时间需要 4 分钟。

webpack_bundle_analyzer 是什么?

这是webpack官方出品的,对项目中模块依赖关系及体积的分析插件,其界面如下:

问题来了,这是如何来进行统计的?

这里提供一个插件的代码,可以观察到里面的 json 结构。

var fs = require('fs');var path = require('path');function FunctionFinder() {};FunctionFinder.prototype.apply = function (compiler) {    compiler.plugin('emit', function (compilation) {        compiler.plugin('done', function(stats){                        let json = stats.toJson({                timings: false,                cached: false,                errors: false,                errorDetails: false,                warning: false            });            fs.writeFile(path.resolve(`./1.json`) , JSON.stringify(json.chunks[1]), function (err) {                if (err) {                    console.log(err);                } else {                    console.log('ok.');                }            });        });    });};module.exports = FunctionFinder;

 

代码中的 stats 是一个巨大的对象,里面包含 chunks,也就是 webpack 分块之后的文件模块,如果项目比较大的话,直接输出 json 可能会报内存溢出,此时可以分批写入文件或者写入不同文件。

上面代码中,只是将 chunks 数组里下标为1的 chunk 到 1.json 中,最终格式化后,可以看到:

 

基本就是类似这样的 json 结构,从里面可以看到依赖关系,文件尺寸等。

看到这里,是否已经清楚 webpack_bundle_analyzer 的原理了呢?

更为深入的部分,可以直接去看源代码,这里只做简单介绍。

转载于:https://www.cnblogs.com/coderhero/p/11189689.html

你可能感兴趣的文章
关于display
查看>>
图片懒加载
查看>>
tomcat下jndi的三种配置方式
查看>>
JS moveStart和moveEnd方法(TextRange对象--查找与选择)
查看>>
textArea中的placeholder属性不起作用
查看>>
Swift 里字符串(一)概览
查看>>
温故知新 javascript 正则表达式(转载)
查看>>
XP系统无法远程桌面
查看>>
正确使用索引
查看>>
java多态
查看>>
盒覆盖 算法
查看>>
bzoj1260 [CQOI2007]涂色paint
查看>>
仿网上银行虚拟键盘脚本- keyboard.js
查看>>
makefile "=" ":=" "?=" "+="
查看>>
机会是留给有准备的人
查看>>
实战是最好的学习方式
查看>>
使用qemu-img创建虚拟磁盘文件
查看>>
JDBC
查看>>
POJ - 3237 Tree (树链剖分+线段树)
查看>>
个人网站可参考的资料
查看>>