登录  /  注册
首页 > web前端 > js教程 > 正文

webpack的优化策略

小云云
发布: 2018-02-23 13:09:52
原创
1048人浏览过

在我们构建单页面应用(vue, react)或封装插件时,很大机会用到webpack,这个javascript的打包工具.
但项目代码日益增多时,webpack一些简单的配置会暴露种种弊端(打包时间长,代码大).
以下是结合自身开发和学习webpack过程解决问题的总结.

打包时间长

DllPlugin

很多人都知道webpack.optimize.CommonsChunkPlugin这个插件是用来提取公共库的,但这个插件也解决不了公共库重复打包的问题.
然而,DllPlugin这个插件就可以解决.
这个插件会先把公共库打包.
它自己拥有独立的webpack配置文件,配置文件入口处是需要打包的公共库.
当它打包完后,会生成公共的js包和manifest.json.
manifest.json是用来让主配置文件DLLReferencePlugin映射到相关的依赖上去的

devtool cheap-module-eval-source-map

当我们使用webpack打包后的代码都经过编译的,所以变得难以调试.
所以webpack给了devtool的api,会通过Source Map找出出错的正确位置.
选择devtool的cheap-module-eval-source-map原因是,每个模块使用eval()大幅提高持续构建效率和没有生成列映射节省构建时间(浏览器引擎会自动给出列信息).

性能优化

样式的分离与压缩

使用extract-text-webpack-plugin将各个脚本里的样式提取到出来.
如果设置allChunks: true会使提取出来的样式合并到一个文件.
使用optimize-css-assets-webpack-plugin将样式进行压缩.

脚本的压缩

使用uglifyjs-webpack-plugin将脚本进行压缩.

js性能优化

webpack每个模块都会放入一个闭包函数中.
使用webpack.optimize.ModuleConcatenationPlugin会将相关联的模块放入一个闭包里.
从而减少闭包的数量.

提取公共代码

使用DllPluginwebpack.optimize.CommonsChunkPlugin会将公共的代码提取出来打包到其他文件.
避免重复打包,从而减少包的大小.

服务器预压缩

当服务开启预压缩时.
会优先获取以文件名称加.gz结尾的文件,这份文件是压缩过后的文件,体积会小.
使用CompressionWebpackPlugin会生成对应压缩文件.

相关推荐:

react、webpack、跨域代理多页面

Vue+webpack基础配置分享

webpack项目的网络优化代码分享



以上就是webpack的优化策略的详细内容,更多请关注php中文网其它相关文章!

智能AI问答
PHP中文网智能助手能迅速回答你的编程问题,提供实时的代码和解决方案,帮助你解决各种难题。不仅如此,它还能提供编程资源和学习指导,帮助你快速提升编程技能。无论你是初学者还是专业人士,AI智能助手都能成为你的可靠助手,助力你在编程领域取得更大的成就。
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
最新问题
关于CSS思维导图的课件在哪? 课件
凡人来自于2024-04-16 10:10:18
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2024 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号