webpack Vue前端项目打包后生成的chunk-vendors文件过大,导致加载太慢,生成的js文件过多,http请求太频繁问题解决

本文主要是介绍webpack Vue前端项目打包后生成的chunk-vendors文件过大,导致加载太慢,生成的js文件过多,http请求太频繁问题解决,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

参考资料 https://blog.csdn.net/weixin_43850586/article/details/103915473
https://www.webpackjs.com/plugins/limit-chunk-count-plugin/

WebPack压缩打包

1、安装压缩插件

npm install --save-dev compression-webpack-plugin

2、修改vue.config.js配置文件

引用插件

const CompressionWebpackPlugin = require('compression-webpack-plugin')    //引入插件
const productionGzipExtensions = ['js', 'css']      //压缩js 和css文件

配置压缩

  configureWebpack: {// webpack pluginsplugins: [// Ignore all locale files of moment.jsnew webpack.IgnorePlugin(/^\.\/locale$/, /moment$/),// GitRevision.version()new webpack.DefinePlugin({APP_VERSION: `"${require('./package.json').version}"`,GIT_HASH: JSON.stringify('1.2'),BUILD_DATE: buildDate}),// 配置压缩new CompressionWebpackPlugin({algorithm: 'gzip',test: new RegExp('\\.(' + productionGzipExtensions.join('|') + ')$'),threshold: 10240,minRatio: 0.8}),//maxChunks:使用大于或等于 1 的值,来限制 chunk 的最大数量。使用 1 防止添加任何其他额外的 chunk,这是因为entry/main chunk 也会包含在计数之中。//minChunkSize: 设置 chunk 的最小大小。//在合并 chunk 时,webpack 会尝试识别出具有重复模块的 chunk,并优先进行合并。任何模块都不会被合并到 entry   chunk 中,以免影响初始页面加载时间。new webpack.optimize.LimitChunkCountPlugin({maxChunks: 5,minChunkSize: 100})],// if prod, add externalsexternals: isProd ? assetsCDN.externals : {}},

3、Nginx 配置 访问 .gz文件

server{#对外发布的端口listen       9090;#对外发布的服务名server_name  192.168.0.87;#字符集charset utf-8;#首页     #index index.html#access_log  logs/host.access.log  main;add_header Access-Control-Allow-Origin "192.168.0.87";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_disable "MSIE [1-6]\.";
}

压缩后的文件会比之前的文件少很多,图片示例说明:
压缩之前 318个文件:
在这里插入图片描述

压缩之后 10个文件:
在这里插入图片描述
当你在编写代码时,可能已经添加了许多代码分离点(code split point)来实现按需加载(load stuff on demand)。在编译完之后,你可能会注意到有一些很小的 chunk - 这产生了大量 HTTP 请求开销。幸运的是,此插件可以通过合并的方式,后处理你的 chunk,以减少请求数。

重启Nginx服务访问正常

这篇关于webpack Vue前端项目打包后生成的chunk-vendors文件过大,导致加载太慢,生成的js文件过多,http请求太频繁问题解决的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/730328

相关文章

Redis连接失败:客户端IP不在白名单中的问题分析与解决方案

《Redis连接失败:客户端IP不在白名单中的问题分析与解决方案》在现代分布式系统中,Redis作为一种高性能的内存数据库,被广泛应用于缓存、消息队列、会话存储等场景,然而,在实际使用过程中,我们可能... 目录一、问题背景二、错误分析1. 错误信息解读2. 根本原因三、解决方案1. 将客户端IP添加到Re

详谈redis跟数据库的数据同步问题

《详谈redis跟数据库的数据同步问题》文章讨论了在Redis和数据库数据一致性问题上的解决方案,主要比较了先更新Redis缓存再更新数据库和先更新数据库再更新Redis缓存两种方案,文章指出,删除R... 目录一、Redis 数据库数据一致性的解决方案1.1、更新Redis缓存、删除Redis缓存的区别二

oracle数据库索引失效的问题及解决

《oracle数据库索引失效的问题及解决》本文总结了在Oracle数据库中索引失效的一些常见场景,包括使用isnull、isnotnull、!=、、、函数处理、like前置%查询以及范围索引和等值索引... 目录oracle数据库索引失效问题场景环境索引失效情况及验证结论一结论二结论三结论四结论五总结ora

element-ui下拉输入框+resetFields无法回显的问题解决

《element-ui下拉输入框+resetFields无法回显的问题解决》本文主要介绍了在使用ElementUI的下拉输入框时,点击重置按钮后输入框无法回显数据的问题,具有一定的参考价值,感兴趣的... 目录描述原因问题重现解决方案方法一方法二总结描述第一次进入页面,不做任何操作,点击重置按钮,再进行下

解决mybatis-plus-boot-starter与mybatis-spring-boot-starter的错误问题

《解决mybatis-plus-boot-starter与mybatis-spring-boot-starter的错误问题》本文主要讲述了在使用MyBatis和MyBatis-Plus时遇到的绑定异常... 目录myBATis-plus-boot-starpythonter与mybatis-spring-b

最好用的WPF加载动画功能

《最好用的WPF加载动画功能》当开发应用程序时,提供良好的用户体验(UX)是至关重要的,加载动画作为一种有效的沟通工具,它不仅能告知用户系统正在工作,还能够通过视觉上的吸引力来增强整体用户体验,本文给... 目录前言需求分析高级用法综合案例总结最后前言当开发应用程序时,提供良好的用户体验(UX)是至关重要

Python pyinstaller实现图形化打包工具

《Pythonpyinstaller实现图形化打包工具》:本文主要介绍一个使用PythonPYQT5制作的关于pyinstaller打包工具,代替传统的cmd黑窗口模式打包页面,实现更快捷方便的... 目录1.简介2.运行效果3.相关源码1.简介一个使用python PYQT5制作的关于pyinstall

javafx 如何将项目打包为 Windows 的可执行文件exe

《javafx如何将项目打包为Windows的可执行文件exe》文章介绍了三种将JavaFX项目打包为.exe文件的方法:方法1使用jpackage(适用于JDK14及以上版本),方法2使用La... 目录方法 1:使用 jpackage(适用于 JDK 14 及更高版本)方法 2:使用 Launch4j(

Node.js 中 http 模块的深度剖析与实战应用小结

《Node.js中http模块的深度剖析与实战应用小结》本文详细介绍了Node.js中的http模块,从创建HTTP服务器、处理请求与响应,到获取请求参数,每个环节都通过代码示例进行解析,旨在帮... 目录Node.js 中 http 模块的深度剖析与实战应用一、引言二、创建 HTTP 服务器:基石搭建(一

Docker集成CI/CD的项目实践

《Docker集成CI/CD的项目实践》本文主要介绍了Docker集成CI/CD的项目实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学... 目录一、引言1.1 什么是 CI/CD?1.2 docker 在 CI/CD 中的作用二、Docke