我是如何用 Webpack 虐待代码尺寸的 (第二回合)

291 阅读2分钟
原文链接: zhuanlan.zhihu.com

徐健:我是如何用 Webpack 虐待代码尺寸的 (第一回合)

徐健:我是如何用 Webpack 虐待代码尺寸的 (第二回合)

徐健:我是如何用 Webpack 虐待代码尺寸的 (第三回合)

↑接上文

先抛出重构项目的分析图

重构后 423K -> 253k

这个变化还是很大的, 说一下发生的变化

首先 index.vue 减小了

base64 从 css 中去掉, 直接使用外部文件, 因为本身这些文件只是一些表情, 显示的时候现加载影响也不大

然后是 im sdk

重构后 im-sdk

对比上一个版本

重构前 im-sdk

这一部分主要是去除无用代码, 以及简化代码写法, 基本上属于纯代码层面的操作

缩减到了原来的一半, 效果明显. 所以简洁的代码也是很好的减少代码尺寸途径

url-loader

将小于8K的文件资源当做 base64直接打包到代码中, 减少细小文件的加载消耗

接下来 lodash (?)

这就尴尬了, 本来原来只是引入完整包, 现在完整包和独立包都引入了一份, 更大了 (尴尬~~)

原因就是 im-sdk 中是按需引入 lodash 的, 而外面还是引入的完整包

当然了这里面还包括 webpack 2 升级到 webpack 4

当时直接上了新版, 没有做效果对比, 应该也是有一些影响的

引入 babel-plugin-lodash 253K -> 230K

babel-plugin-lodash 可以无需修改代码写法自动把 lodash 变成按需引入, 效果图

整体减少 20K+ , 果然 lodash 对于前端来说尺寸还是过大, 但是为了开发效率, 还是忍了


看到这里, 我又要说, 重构...

这次的原因嘛, 是为了优化合作模式, 具体的下章来解释吧

----

再次广告

欢迎关注我的知乎账号, 关注后续优化操作, 想了解网页版 socket 和 IM 相关的内容也可以关注, 后面会有相关的文章