打包分析:

https://webpack.js.org/guides/code-splitting/#bundle-analysis


       性能优化使用缓存是很有限的,现在更多的应该是再编写代码时,考虑到代码的覆盖率,如何让页面加载的js文件利用率提高,有些交互后才能用到的代码可以写在异步组件里通过懒加载的形式,把这块的代码逻辑加载进来,这样就可以提高代码的性能,页面访问速度也会加快。如果感觉懒加载影响用户体验,这个时候就可以用prefetch。

预取/预加载模块 Prefetching/Preloading modules

webpack 4.6.0+增加了对预取和预加载的支持。

  • 在声明您的导入时使用这些内联指​​令可以使webpack输出“ Resource Hint”,它告诉浏览器:

    • prefetch(预取):将来可能需要一些导航资源
    • preload(预加载):当前导航期间可能需要资源

      简单的预取示例可以包含一个HomePage组件,该组件呈现一个LoginButton组件,然后按需LoginModal在单击后加载该组件。

LoginButton.js

//...
import(/* webpackPrefetch: true */ 'LoginModal');

这将导致将<link rel="prefetch" href="login-modal-chunk.js">其附加在页面的开头,这将指示浏览器在空闲时间预取login-modal-chunk.js文件。

一旦父块被加载,webpack将添加预取提示。

  • 与Prefetch相比,Preload指令有很多区别:

    • 预加载的块开始并行于父块加载。父块完成加载后,预取的块开始。
    • 预加载的块具有中等优先级,可以立即下载。浏览器空闲时,将下载预提取的块。
    • 父块应立即请求预加载的块。预取的块可以在将来的任何时候使用。
    • 浏览器支持不同。

      可以有一个简单的预加载示例,该示例Component始终依赖于应放在单独块中的大型库。

让我们想象一个ChartComponent需要巨大的组件ChartingLibrary。它显示了LoadingIndicator何时渲染,并立即按需导入ChartingLibrary

ChartComponent.js

//...
import(/* webpackPreload: true */ 'ChartingLibrary');

ChartComponent请求使用的页面时,也会通过来请求charting-library-chunk <link rel="preload">。假设页面块较小,并且完成速度更快,则页面将显示为LoadingIndicator,直到已经请求charting-library-chunk完成。这将增加一点加载时间,因为它只需要一个往返而不是两个。特别是在高延迟环境中。

错误地使用webpackPreload实际上会损害性能,因此在使用时要小心。

参考:https://webpack.js.org/guides/code-splitting/#bundle-analysis

webpack之打包分析以及prefetching和preloading的更多相关文章

  1. vue-cli@webpack@4打包分析命令

    一.命令 npm run build --report 该命令在打包完之后,可以分析包的大小(如下图),从而分析那一块打包太大了可以进行优化处理.

  2. create-react-app 搭建的项目中,引入 webpack-bundle-analyzer 打包分析

    安装npm intall webpack-bundle-analyzer --save-dev 在 config/webpack.config.prod.js 文件(推荐)或 config/webpa ...

  3. H264码流打包分析(精华)

    H264码流打包分析 SODB 数据比特串-->最原始的编码数据 RBSP 原始字节序列载荷-->在SODB的后面填加了结尾比特(RBSP trailing bits 一个bit“1”)若 ...

  4. webpack独立打包与缓存处理

    关于 微信公众号:前端呼啦圈(Love-FED) 我的博客:劳卜的博客 知乎专栏:前端呼啦圈 前言 先前写了一篇webpack入门的文章<webpack入门必知必会>,简单介绍了webpa ...

  5. express整合webpack的打包文件dist

    对于我来说,第一次接触前后端整合问题的小白,刚开始是一脸懵逼,这个问题整整坑了我一个晚上加一个早上,现在写出来总结: 前端开发:vue-cli+webpack: 后台开发:nodejs框架expres ...

  6. webpack 基本打包方法

    webpack的打包基本配置文件webpack.config.js 可以在webpack.config.js里面写好配置:比如前章节所总结的四大核心 |-- add.js // 定义一个普通加法函数 ...

  7. webpack 单独打包指定JS文件(CopyWebpackPlugin)

    背景: 不确定打出的前端包所访问的后端IP,需要对项目中IP配置文件单独拿出来,方便运维部署的时候对IP做修改.因此,需要用webpack单独打包指定文件.npm install --save-dev ...

  8. webpack项目打包配置

    webpack.config.js 文件中,其中“plugins”最为重要 var path = require("path"); const webpack = require( ...

  9. vue-cli、create-react-app 项目如何查看打包分析?

    vue-cli.create-react-app 项目如何查看打包分析? 项目 如何查看打包分析 vue-cli 创建的项目 已经集成 webpack-bundle-analyzer,运行npm ru ...

随机推荐

  1. 自己动手搭环境—unit 1、Struts2环境搭建

    1.web.xml中增加Struts2配置 <filter> <filter-name>struts2</filter-name> <filter-class ...

  2. Gitlab安装配置管理

    ◆安装Gitlab前系统预配置准备工作1.关闭firewalld防火墙# systemctl stop firewalld# systemctl disable firewalld 2.关闭SELIN ...

  3. 开始使用Manjaro

    Manjaro是什么? 一个基于Arch系列,开源的linux发行版 Mnajrao官网了解更多,这里不做更多阐述内容 为什么使用Manjaro 第一点,为了方便自己隔离腾讯网游 第二点,更方便的学习 ...

  4. C++ vector对象是如何增长的

    为了支持快速随机访问,vector将元素连续存储---每个元素紧挨着前一个元素存储. 如果没有空间容纳新元素: 容器必须分配新的内存空间来保存已有元素和新元素,将已有元素从旧位置移动到新空间中,然后添 ...

  5. [bzoj4444] [loj#2007] [洛谷P4155] [Scoi2015] 国旗计划

    Description \(A\) 国正在开展一项伟大的计划--国旗计划.这项计划的内容是边防战士手举国旗环绕边境线奔袭一圈.这项计划需要多名边防战士以接力的形式共同完成,为此,国土安全局已经挑选了 ...

  6. java中5种异步转同步方法

    先来说一下对异步和同步的理解: 同步调用:调用方在调用过程中,持续等待返回结果. 异步调用:调用方在调用过程中,不直接等待返回结果,而是执行其他任务,结果返回形式通常为回调函数. 其实,两者的区别还是 ...

  7. c#实现ofd文件转图片功能 (附执行程序)

    前言 ofd文件的作用就是保证信息能如实的存储.传递.显示.保证ofd文件的真实性靠的是签名:ofd 的显示需要专用软件.ofd标准是新的国家标准,应用范围远不如pdf:现有浏览器不能解析ofd.支持 ...

  8. Installing PyCharm

    Installing PyCharm|                                                     #                            ...

  9. 开源项目SMSS发开指南(四)——SSL/TLS加密通信详解

    本文将详细介绍如何在Java端.C++端和NodeJs端实现基于SSL/TLS的加密通信,重点分析Java端利用SocketChannel和SSLEngine从握手到数据发送/接收的完整过程.本文也涵 ...

  10. re模块的使用

    re模块下的函数 compile(pattern):创建模式对象 import re pat = re.compile('D') m = pat.search('CBA') #等价于re.search ...