webpack分离第三方库的解决方案-DllPlugin和DllReferencePlugin

1. 官方说明

This plugin is used in a separate webpack config exclusively to create a dll-only-bundle. It creates a manifest.json file, which is used by the DllReferencePlugin to map dependencies.

这个插件用来分离构建bundle包,原理是生成一个mainfest.json文件,给DLLReferencePlugin插件来根据依赖构建bundle包;前者可以让你生成索引,后者把你的引用连接到真实的模块。

2.分离第三方库的优点

  • 加快编译速度
  • 加快打包速度,第三方库版本稳定,打包一次之后,可以很长时间使用这个版本包,等到第三方库更新再打包,平时就是打包项目业务代码
  • 合理利用浏览器缓存

3. 使用方法

4. 编译速度的提升

使用dll文件后,会打包一个vendor文件,这个文件是打包了指定的第三方库,
文件大小和打包速度:


image.png

业务代码文件大小和打包速度:


image.png

编译的时候,只修改业务代码,只会编译业务代码文件,编译速度很快:
没使用dll的情况下,业务代码很大,而且只修改业务代码,都要重新编译打包很大的文件:


image.png

5.对于第三方包缓存的利用

因为第三方包只在我们主动npm run dll的情况下重新打包,重新生成hash,所以其他情况下,这个库文件是永远不变的,Etag不会改变,缓存永远有效,浏览网页的时候这个库文件便可以一直利用缓存

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容