前置条件:
首先项目是异步加载(lazyload)的
假如项目总大小为2M,那么 chunks: "initial"
的大小为500K左右;
问题
如果我导出 dll 的包,正常配置的话,引入是在入口处 html 里直接引用的,那它是否能异步加载 ?
如果能, dll 中引入了异步代码 是否会增加初始代码的量?
如果不能异步 那么 dll 的加载的代码量就比较小,
即使将初始代码500K 全部转为 dll ,相对于 2M 的大小,webpack 增加的编译速度也很小;
还有我的部分代码是按需加载的, dll 是否能够起效 ?
我尝试着解释一下:
dll和懒加载好像没什么关系
dll和打包后包的大小好像也没什么关系
dll是干什么的呢?
1、dll是把不经常改变的第三方包(例如vue,vuex,jquery,axios等等)打包在一起,然后只要这里的第三方包版本不更新,以后的webpack打包就直接跳过这些,也就是说
dll可以提高webpack的打包速度
2、第三方包打包在一起了,项目的公共包的体积自然就会减小,当用户首次加载页面是,dll包就会进入用户的缓存中,以后你再更新项目,当dll包不变的时候,用户打开首页加载的共公包就会减小,首页打开会快一点,也就是说
dll可以减少公共包的大小,利用用户的缓存,提高首页加载速度
我对dll的了解就这么多,希望能能对你有所帮助