webpack优化主要有三个方面:1.提高构建速度,2.减少打包体积,3.优化用户体验

提高构建速度:

  1. 启用多线程

    thread-loader

    使用thread-loader插件可以启用多线程进行构建。

  2. 使用缓存

    cache-loader

    使用cache-loader插件可以对构建进行缓存,加快后续的构建速度。

  3. 热更新

    热更新只更新改动的代码文件,无需编译整个项目。

  4. exclude&include

    exclude选项是构建时忽略的文件,include选项是构建时需要构建的文件。配置好exclude和include,可以避免对不必要的文件进行构建。

减少打包体积

  1. 压缩css代码

    css-minimizer-webpack-plugin

  2. 压缩js代码

    terser-webpack-plugin

  3. tree-shaking

    tree-shaking就是只编译需要的代码。

    webpack5该特性默认启用。

  4. source-map

    source-map帮助在源代码中定位bug。

    开发模式使用更精确但体积更大的source-map

module.exports = {
mode: 'development',
devtool: 'eval-cheap-module-source-map'
}

生产模式使用体积小但不那么精确的source-map

module.exports = {
mode: 'production',
devtool: 'nosources-source-map'
}
  1. 打包分析

    webpack-bundle-analyzer插件可以看到各个文件的打包大小,帮助对对应的文件进行优化

优化用户体验

  1. 延迟加载模块

    在vue中,用下面箭头函数的方式引入模块,就可以按需加载模块。react的延迟加载和vue类似,angular也有自己的延迟加载方式。
// src/router/index.js
const routes = [
{
path: '/login',
name: 'login',
component: login
},
{
path: '/home',
name: 'home',
// lazy-load
component: () => import('../views/home/home.vue'),
},
]
  1. Gzip

    最常见的压缩文件的算法。可以在网络传输中压缩数据,加快传输速度。需要后端的配合。

    插件 compression-webpack-plugin

  2. base64

    小图片可以转成base64嵌进代码中,减少http请求数量。

    插件 asset-module

  3. hash

    如下配置可以给打包文件加上hash后缀,生成hash后缀管理浏览器缓存。只要文件名和之前不同,浏览器就会向服务端重新请求文件。反之,浏览器会从协商缓存中读取文件。重新部署了项目,文件名称未修改,客户端不一定能获取到最新的代码。

    webpack会自动更改有改动的打包文件的hash后缀,可以自动实现文件的缓存管理。

output: {
path: path.resolve(__dirname, '../dist'),
filename: 'js/chunk-[contenthash].js',
clean: true,
},

webpack调优技巧的更多相关文章

  1. 20个Linux服务器性能调优技巧

    Linux是一种开源操作系统,它支持各种硬件平台,Linux服务器全球知名,它和Windows之间最主要的差异在于,Linux服务器默认情况下一般不提供GUI(图形用户界面),而是命令行界面,它的主要 ...

  2. 11 个简单的 Java 性能调优技巧

    大多数开发人员理所当然地以为性能优化很复杂,需要大量的经验和知识.好吧,不能说这是完全错误的.优化应用程序以获得最佳性能不是一件容易的事情.但是,这并不意味着如果你不具备这些知识,就不能做任何事情.这 ...

  3. 11个简单的Java性能调优技巧,傻瓜都能学会!

    大多数开发人员理所当然地以为性能优化很复杂,需要大量的经验和知识.好吧,不能说这是完全错误的.优化应用程序以获得最佳性能不是一件容易的事情.但是,这并不意味着如果你不具备这些知识,就不能做任何事情. ...

  4. [转]20个你不得不知的Linux服务器性能调优技巧

    Linux是一种开源操作系统,它支持各种硬件平台,Linux服务器全球知名,它和Windows之间最主要的差异在于,Linux服务器默认情况下一般不提供GUI(图形用户界面),而是命令行界面,它的主要 ...

  5. Tomcat 调优技巧

    Tomcat 调优技巧:1.Tomcat自身调优: ①采用动静分离节约Tomcat的性能: ②调整Tomcat的线程池: ③调整Tomcat的连接器: ④修改Tomcat的运行模式: ⑤禁用AJP连接 ...

  6. iOS开发25个性能调优技巧

    1. 用ARC管理内存 ARC(Automatic Reference Counting, 自动引用计数)和iOS5一起发布,它避免了最常见的也就是经常是由于我们忘记释放内存所造成的内存泄露.它自动为 ...

  7. 一次看完28个关于ES的性能调优技巧,很赞,值得收藏!

    因为总是看到很多同学在说Elasticsearch性能不够好.集群不够稳定,询问关于Elasticsearch的调优,但是每次都是一个个点的单独讲,很多时候都是case by case的解答,本文简单 ...

  8. MySQL数据库调优技巧

    原文链接:https://m.aliyun.com/bbs/read/300762.html MySQL是一个功能强大的开源数据库.随着越来越多的数据库驱动的应用程序,人们一直在推动MySQL发展到它 ...

  9. 六 JSP 和 Servlet 的系统调优技巧

    方法一:在 Servlet 的 init() 函数中申请缓冲数据 方法二:禁止 Servlet 和 JSP 的自动重载: Servlet/JSP 提供了一个实用的技术,即自动重载技术,它为开发人员提供 ...

  10. Oracle-第一篇一些调优技巧

    1.查询 1>通过提示,使用索引. 2>使用/*+parallel*/并行查询 3>查看执行计划,调整sql语句或者优化表结构 4>避免使用“*”号 2.表设计:partiti ...

随机推荐

  1. Puppet 2024年度报告:平台工程发掘 DevOps 无限潜质

    Puppet 于本周发布了一份2024年的 DevOps 现状报告 The State of DevOps Report: The Evolution of Platform Engineering. ...

  2. Lambda表达式编写递归函数

    class Program { //Fix求出的是函数f的不动点,它就是我们所需要的递归函数: static Func<T, TResult> Fix<T, TResult>( ...

  3. KingbaseES V8R3集群部署案例之---通用机无ssh环境脚本部署集群

    案例说明: 在一些通用机的生产环境,不允许主机之间通过ssh通讯,或者不允许root用户建立ssh互信或登录.默认KingbaseES V8R3集群通用机环境部署需要建立数据库用户及root用户,在集 ...

  4. OGNL表达式注入分析

    OGNL基础 依赖 <dependency> <groupId>ognl</groupId> <artifactId>ognl</artifact ...

  5. async/await 致WPF卡死问题

    问题代码: xmal:一个按钮+一个显示框 1 <Button Width="100" Height="50" Margin="10" ...

  6. 【Java】使用位运算完成数组中两个变量交换位置

    1 /** 2 * 3 */ 4 package com.raliable.chapter_0; 5 /** 6 * @author : Administrator 7 * @date :2022年4 ...

  7. 从bootstrap源码中学习Sass(一)

    可以在github看代码,非常方便:https://github.com/twbs/bootstrap/blob/main/scss/_variables.scss 就是有时候网络差. 基础用法 sc ...

  8. 一文弄懂EnumMap和EnumSet

    目录 简介 EnumMap 什么时候使用EnumMap EnumSet 总结 一文弄懂EnumMap和EnumSet 简介 一般来说我们会选择使用HashMap来存储key-value格式的数据,考虑 ...

  9. openGauss3.1.0 版本的gs_stack功能解密

    openGauss3.1.0 版本的 gs_stack 功能解密 不管是测试还是研发,工作中总有遇到各种各样的问题.比如,你有没有遇到过在数据库中执行某个 SQL,却一直不返回结果,这时候的你是不是非 ...

  10. 鸿蒙开发套件之DevEco Profiler助您轻松分析应用性能问题

     作者:shizhengtao,华为性能调优工具专家 应用的性能优化一直以来都是开发者所面临的一大难题,在2023HDC大会上全新亮相的HarmonyOS NEXT开发者预览版,其中鸿蒙开发套件Dev ...