Vue3.2 + vue/cli-service 打包 chunk-vendors.js 文件过大导致页面加载缓慢解决方案

chunk-vendors.js 是/node_modules 目录下的所有模块打包成的包, 但是这包太大导致页面加载很慢(我的都要3-4秒了), 这个时候就会出现白屏的情况

解决方案

        1、compression-webpack-plugin 插件解决方案

                1)、安装

npm install compression-webpack-plugin -D

                2)、在vue.config.js中使用 compression-webpack-plugin

 const compressionWebpackPlugin = require('compression-webpack-plugin');

 chainWebpack: config => {
    if (!_IS_DEV__) {
      // 开启gzip压缩
      config.plugin('compressionPlugin').use(
        new compressionWebpackPlugin({
          algorithm: 'gzip',
          test: /\.js$|\.html$/,
          threshold: 10240,
          minRatio: 0.6,  // 必须为false, 不然部署之后会报错
          deleteOriginalAssets: false
        })
      );
    }
    // nginx server 里面配置
    // # 前端将文件打包成.gz文件,然后通过nginx的配置,让浏览器直接解析.gz文件,可以大大提升文件加载的速度。
    // # compression-webpack-plugin 配置
    // gzip on;
    // gzip_min_length 1k;
    // gzip_comp_level 9;
    // gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;
    // gzip_vary on;
    // # 配置禁用 gzip 条件,支持正则,此处表示 ie6 及以下不启用 gzip(因为ie低版本不支持)
    // gzip_disable "MSIE [1-6]\.";
  },

        3)、配置nginx:在server中配置如下内容

  # 前端将文件打包成.gz文件,然后通过nginx的配置,让浏览器直接解析.gz文件,可以大大提升文件加载的速度。
  # compression-webpack-plugin 配置
  gzip on;
  gzip_min_length 1k;
  gzip_comp_level 9;
  gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript applicationx-httpd-php image/jpeg image/gif image/png;
  gzip_vary on;
  # 配置禁用 gzip 条件,支持正则,此处表示 ie6 及以下不启用 gzip(因为ie低版本不支持)
  gzip_disable "MSIE [1-6]\.";

        2、使用webpack optimization 进行对大文件分包打包

                配置如下:

optimization: {
  runtimeChunk: 'single',
  splitChunks: {
    chunks: 'all',
    maxInitialRequests: Infinity,
    minSize: 20000,
    cacheGroups: {
      vendors: {
        test: /[\\/]node_modules[\\/]/, // 使用正则匹配node_modules中引入的模块
        priority: -10, // 优先级值越大优先级越高,默认-10,不用修改
        name(module) {
          // 设定分包以后的文件模块名字,按照包名字替换拼接一下
          if (!module.context.match(/[\\/]node_modules[\\/](.*?)([\\/]|$)/)) return;
          const packageName = module.context.match(/[\\/]node_modules[\\/](.*?)([\\/]|$)/)[1];
          return `npm.${packageName.replace('@', '')}`;
        }
      }
    }
  }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/434790.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Docker数据卷篇

1. 数据卷(容器数据管理) 引言:在之前的nginx案例中,修改nginx的html页面时,需要进入nginx内部。并且因为没有编辑器,修改文件也很麻烦。 这就是因为容器与数据(容器内文件)耦合带…

用位运算维护状态码,同事直呼牛X!

位运算是一种非常高效的运算方式。在算法考察中比较常见,它使用位级别的操作来表示和控制状态,这在管理多个布尔标志或状态时尤其有用。那么业务代码中我们如何使用位运算呢? 位运算基础 我们先来回顾一下位运算的基础: 与&…

领到了腾讯云服务器红包,可以用于购买服务器,开心!

在2024年腾讯云新春采购节优惠活动上,可以领取新年惊喜红包,打开活动链接 https://curl.qcloud.com/oRMoSucP 会自动弹出红包领取窗口,如下图: 腾讯云2024新春采购节红包领取 如上图所示,点击“领”红包,每…

腾讯云十大优惠活动曝光,TOP10值得买云服务器配置报价

腾讯云服务器多少钱一年?61元一年起,2核2G3M配置,腾讯云2核4G5M轻量应用服务器165元一年、756元3年,4核16G12M服务器32元1个月、312元一年,8核32G22M服务器115元1个月、345元3个月,腾讯云服务器网txyfwq.co…

python爬虫(一)

一、python中的NumPy模块(数据的存储和处理) 这里是下载完成之后的表现 (1)创建数组 1、使用array()函数创建数组 使用array函数可以创建任意维度的的数组 下面是一个创建二维数组的代码示例 下面是代码…

L1-096 谁管谁叫爹分数

L1-096 谁管谁叫爹 分数 20 全屏浏览 切换布局 作者 陈越 单位 浙江大学 《咱俩谁管谁叫爹》是网上一首搞笑饶舌歌曲,来源于东北酒桌上的助兴游戏。现在我们把这个游戏的难度拔高一点,多耗一些智商。 不妨设游戏中的两个人为 A 和 B。游戏开始后&…

使用统一功能完善图书管理系统

目录 一、前提 二、实现强制登陆传统方式 三、拦截器 1、概念 2、拦截器 (1)定义拦截器 (2)注册拦截器 (3)运行 3、使用拦截器实现强制登陆 4、DispatcherServlet源码解析 四、适配器模式 1、适…

Postman 接口自动化测试教程:入门介绍和从 0 到 1 搭建 Postman 接口自动化测试项目

关于Postman接口自动化测试的导引,全面介绍入门基础和从零开始搭建项目的步骤。学习如何有效地使用Postman进行API测试,了解项目搭建的基础结构、环境设置和测试用例的编写。无论您是新手还是经验丰富的测试人员,这篇教程都将为您提供清晰的指…

IIC 接口

IIC 接口 IIC总线概述IIC总线简介IIC总线通信过程IIC总线寻址方式 IIC总线信号实现起始信号、停止信号字节传送与应答同步信号 IIC典型时序 IIC总线概述 IIC总线简介 IIC总线是Philips公司在八十年代初推出的一种串行、半双工总线,主要用于近距离、低速的芯片之间…

SpringBoot集成图数据库neo4j实现简单的关联图谱

社交领域:Facebook, Twitter,Linkedin用它来管理社交关系,实现好友推荐 图数据库neo4j安装: 下载镜像:docker pull neo4j:3.5.0运行容器:docker run -d -p 7474:7474 -p 7687:7687 --name neo4j-3.5.0 ne…

信息熵、KL散度、交叉熵、互信息、点互信息

信息熵 信息量 信息量是对信息的度量,衡量事件的不确定性,越小概率的事件发生了产生的信息量越大。我们应该用什么形式的函数表达信息量呢?除了随着概率增大而减少,这个函数还有具有以下性质: 如果有两个事件x和y彼…

云消息队列 Confluent 版正式上线!

作者:阿里云消息队列 前言 在 2023 年杭州云栖大会上,Confluent 成为阿里云技术合作伙伴,在此基础上,双方展开了深度合作,并在今天(3月1日)正式上线“云消息队列 Confluent 版”。 通过将 Co…

vue3学习(续篇)

vue3学习(续篇) 默认有vue3基础并有一定python编程经验。 chrome浏览器安装vue.js devtools拓展。 文章目录 vue3学习(续篇)1. element-ui使用2. axios 网络请求1. 简介2. 操作 3. flask-cors解决跨域问题1. 简介2. 操作 4. 前端路由 vue-router1. 简单使用2. 配置路径别名和…

基于远程NDIS的Internet共享设备驱动出现感叹号(Windows 仍在设置此设备的类配置 代码 56)解决办法

USB共享网络出现了RNDIS/MBIM设备驱动显示感叹号(Windows 仍在设置此设备的类配置。 (代码 56))的情况的解决办法: 1.设置中搜索安全模式/更改高级启动选项->立即重新启动 2.重启后界面中选择疑难解答->高级选项->启动设置->屏…

触发HTTP preflight预检及跨域的处理方法

最近在做需求的过程中,遇到了很多跨域和HTTP预检的问题。下面对我所遇到过的HTTP preflight和跨域的相关问题进行总结: 哪些情况会触发HTTP preflight preflight属于cors规范的一部分,在有跨域的时候,在一定情况下会触发preflig…

迭代的 CKKS 高精度自举

参考文献: [KDE23] Kim A, Deryabin M, Eom J, et al. General bootstrapping approach for RLWE-based homomorphic encryption[J]. IEEE Transactions on Computers, 2023.[BCC22] Bae Y, Cheon J H, Cho W, et al. Meta-bts: Bootstrap** precision beyond the …

Java基础概念 7-计算机中的数据存储

目录 Java基础概念 7-计算机中的数据存储 计算机的存储规则 进制 十进制:0123456789 二进制:01 常见的进制 不同进制在代码中的表现形式 计算机为什么用二进制存储数据? 进制之间的转换 任意进制转十进制 公式: 系数*基数的权次幂 相加 二进制转十进制** 八进制转…

基于springboot+vue的智能无人仓库管理系统

博主主页:猫头鹰源码 博主简介:Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战,欢迎高校老师\讲师\同行交流合作 ​主要内容:毕业设计(Javaweb项目|小程序|Pyt…

Java电梯模拟升级版

Java电梯模拟升级版 文章目录 Java电梯模拟升级版前言一、UML类图二、代码三、测试 前言 在上一版的基础上进行升级,楼层采用享元模式进行升级,并对楼层对象进一步抽象 一、UML类图 二、代码 电梯调度器抽象类 package cn.xx.evevator;import java.ut…

cuda WSL2 无需单独安装

https://docs.nvidia.com/cuda/wsl-user-guide/index.html 这个写的很详细
最新文章