webpack构建优化
来源:互联网 发布:手持数据终端i6200s 编辑:程序博客网 时间:2024/05/18 23:28
压缩Minimize
为了最小化你的脚本(和你的css,如果你使用css-loader)webpack支持一个简单的选项: --optimize-minimize
resp.new webpack.optimize.UglifyJsPlugin()
这是个简单但是高效的优化你的应用的代码。
正如你已经知道(如果你已经阅读剩下的文档)webpack给你的模块和块ID ids来识别它们。 Webpack可以通过一个简单的选项来改变id的分布,以获得经常使用的id的最小id长度: --optimize-occurrence-order
resp. new webpack.optimize.OccurrenceOrderPlugin()
entry chunks有较高的优先级
去重 Deduplication
如果你使用一些库和冷依赖树,可能会出现一些文件是相同的。 Webpack可以找到这些文件并对其进行重复数据删除。 这可以防止在代码包中包含重复的代码,而是在运行时应用函数的副本。 它不影响语义。你可以这样启用它: --optimize-dedupe
resp.resp. new webpack.optimize.DedupePlugin()
此功能会向入口块(entry chunks)添加一些开销。
分块chunks
在编写代码时,您可能已经添加了许多代码拆分点来按需加载内容。 编译之后,您可能会注意到有太多的块太小 - 创建更大的HTTP开销。 幸运的是,Webpack可以通过合并它们后处理你的块。您可以提供两个选项:
- 限制chunks的数量的最大值:
--optimize-max-chunks 15
new webpack.optimize.LimitChunkCountPlugin({maxChunks: 15})
- 限制chunks大小的最小值:
--optimize-min-chunk-size 10000
new webpack.optimize.MinChunkSizePlugin({minChunkSize: 10000})
Webpack将通过合并块来处理它(它将喜欢具有重复模块的合并块)。 没有任何东西将被合并到条目块(entry chunk)中,以便不影响初始页面加载时间。
单页应用
单页面程序是webpack用于设计和优化的webapp类型。
您可能已将应用程序拆分为多个块,并在您的路由器上加载。 入口块只包含路由器和一些库,但没有内容。 这在您的用户导航通过您的应用程序时,但工作很好,但对于初始页面加载你需要2次往返:一个为路由器,一个为当前内容页面。
如果您使用HTML5 History API来反映网址中的当前内容网页,则您的服务器可以知道客户端代码将请求哪个内容网页。 要保存到服务器的往返行程,您可以在响应中包含内容块:这可以通过将其添加为脚本标记来实现。 浏览器将加载两个并行的块。
<script src="entry-chunk.js" type="text/javascript" charset="utf-8"></script><script src="3.chunk.js" type="text/javascript" charset="utf-8"></script>
您可以从统计信息中提取块文件名。 (stats-webpack-plugin可以用于导出构建统计信息)
多页应用
- webpack构建优化
- webpack构建性能优化
- webpack 前端构建性能优化策略小结
- webpack 前端构建性能优化策略小结
- webpack前段构建性能优化策略小结
- 【前端构建】WebPack实例与前端性能优化
- 【前端构建】WebPack实例与前端性能优化
- 优化Webpack构建性能的几点建议
- webpack优化
- 用Webpack构建Vue
- vue2+webpack构建项目
- 用Webpack构建Vue
- react+webpack构建步骤
- webpack进阶构建项目
- Webpack项目构建
- webpack构建工具安装
- webpack构建与loaders
- React+Webpack构建环境
- PHP配置文件详解(php必须懂的)
- Linux usb wifi驱动分析(二)
- 20个PHP简答和程序笔试题
- JavaScript 匿名函数有哪几种执行方式?
- CSS深入理解之absolute
- webpack构建优化
- [绍棠] IOS 获取设备本地音视频, 即相册视频, 音频
- vue 基础 filter 过滤器使用
- 黑客,小白来敲门
- 解决在IE下“JSON”未定义的问题
- java实现找出所有的最大连通子图,并把连通子图中所有顶点的集合合并为一个i额字符串集合。
- php安装模块
- 在eclipse中代码提示出来后点击回车,为什么会在类名或者接口名前面自动加上包名!
- 【2016 泉市教科】密码锁