vue2 webpack使用optimization.splitChunks分包,实现按需引入,进行首屏加载优化

news/2024/7/8 4:21:38 标签: webpack, 前端, node.js

optimization.splitChunks的具体功能和配置信息可以去网上自行查阅。

这边简单讲一下他的使用场景、作用、如何使用:

1、没用使用splitChunks进行分包之前,所有模块都揉在一个文件里,那么当这个文件足够大、网速又一般的时候,首屏加载就会很慢。如下图,这三块会在首次进入项目的时候会一起加载:

在这里插入图片描述

2、这时,我们使用splitChunks进行分包,在vue.config.js进行配置,代码如下:

module.exports = {
  configureWebpack: {
    optimization: {
       splitChunks: {
	   chunks: 'all',
       minSize: 30000, // 最小模块大小
       maxSize: 0, // 最大模块大小
       minChunks: 1, // 最小共享次数
       maxAsyncRequests: 5, // 最大异步请求数
       maxInitialRequests: 3, // 最大初始化请求数
       name: true, // 为分割出来的代码块命名,可以设置为true、false或函数
	   cacheGroups: {
	       libs: {
	         name: 'chunk-libs',
	         test: /[\\/]node_modules[\\/]/,
	         priority: 10,
	         chunks: 'initial' // only package third parties that are initially dependent
	       },
	       elementUI: {
	         name: 'chunk-elementUI', // split elementUI into a single package
	         priority: 20, // the weight needs to be larger than libs and app or it will be packaged into libs or app
	         test: /[\\/]node_modules[\\/]_?element-ui(.*)/ // in order to adapt to cnpm
	       },
	       commons: {
	         name: 'chunk-commons',
	         test: resolve('src/components'), // can customize your rules
	         minChunks: 3, //  minimum common number
	         priority: 5,
	         reuseExistingChunk: true
	       }
	   }
     }
   }
}

cacheGroupssplitChunks里面最核心的配置,splitChunks就是根据cacheGroups去拆分模块的。
配置完成以后,在进行打包,模块就会进行分包。如下图:
在这里插入图片描述
这时候,当你进入某个页面,用到某个模块的时候,对应的模块包才会进行加载,实现按需加载,这样能大幅优化首屏加载缓慢的问题


http://www.niftyadmin.cn/n/5536321.html

相关文章

大数据开发中的数据生命周期管理

上班越久,发现有些数据一直放在那里,根本没有流动,完全没有发挥价值,数据是有生命周期的,而且生命周期管理得好,工作就会更轻松。 目录 引言数据创建示例代码 数据存储示例代码 数据使用示例代码 数据维护示…

SQL Server特性

一、创建表 在sql server中使用create table来创建新表。 create table Customers( id int primary key identity(1,1), name varchar(5) ) 该表名为Customers其中包含了2个字段,分别为id(主键)以及name。 1、数据类型 整数类型&#xff…

SQL注入工具Sqlmap

一、什么是Sqlmap Sqlmap是一款开源的渗透测试工具,主要用于自动化检测和利用SQL注入漏洞,并能实现数据库服务器的接管。Sqlmap提供了多种功能和选项,包括数据库指纹识别、数据读取、文件系统访问以及通过带外数据连接执行系统命令等。它支持…

mongodb-数据备份和恢复

mongodb-database-tools mongodb-database-tools是MongoDB官方提供的一组命令行工具,用于执行各种与MongoDB数据库相关的操作,包括备份、恢复、导入、导出、查询和转换数据等。这些工具可帮助开发人员和管理员轻松地管理MongoDB数据库。 以下是一些常用…

【总线】AXI4第六课时:寻址选项深入解析

大家好,欢迎来到今天的总线学习时间!如果你对电子设计、特别是FPGA和SoC设计感兴趣,那你绝对不能错过我们今天的主角——AXI4总线。作为ARM公司AMBA总线家族中的佼佼者,AXI4以其高性能和高度可扩展性,成为了现代电子系统中不可或缺的通信桥梁…

Android 12.0 通知发送过程源码分析-Framework

以下NotificationManagerService简称 NMS 1. 通知的发送: NotificationManager.notify(int id, Notification notification) 开始. 源码路径: /frameworks/base/core/java/android/app/NotificationManager.java/***发布通知以显示在状态栏中。 如果通知带有* 相同的 ID 已被…

「树莓派入门」树莓派进阶02-传感器应用与交通灯项目

传感器是树莓派实现智能化的关键。通过本教程,你可以开始尝试使用传感器来增强树莓派的功能。 一、传感器在树莓派中的作用 传感器是树莓派与外界环境交互的重要工具。它们可以检测各种物理量,如光、声音、温度等,并将这些物理量转换为电信号,供树莓派读取和处理。 二、数…

马工程刑法期末复习笔记重点2

马工程刑法期末复习笔记重点2