vue项目第一次加载时因chunk-vendors.js文件过大导致加载太慢的解决办法


借鉴博客:https://blog.csdn.net/qq_31677507/article/details/102742196     (亲测有用)

使用浏览器第一次打开vue项目时,加载时间慢到用了28秒,查看网络加载文件,chunk-verdors.js这个文件2M用了28秒。

解决办法:使用webpack的插件压缩打包,然后配置nginx的gzip压缩配置

  第一步:安装压缩插件:(新版本的可能运行会报错出问题,这里用的5.0.1版本)

npm i compression-webpack-plugin@5.0.1

   第二步:package.json手动指定一下版本,(我用jenkins自动打包,报错没找到此插件手动指定一下,自动打包的时候自动下载)

   第三步:vue.config.js中配置compression-webpack-plugin的压缩文件配置代码:

const path = require('path');

const webpack = require('webpack')
const CompressionWebpackPlugin = require('compression-webpack-plugin')
const productionGzipExtensions = ['js', 'css']
const isProduction = process.env.NODE_ENV === 'production'

module.exports = {
    productionSourceMap: false, //去除vue打包后js目录下生成的.map文件,用于加速生产环境构建

  //压缩配置 configureWebpack:{ resolve:{ alias:{ '@':path.resolve(__dirname, './src'), '@i':path.resolve(__dirname, './src/assets'), } }, plugins: [ new webpack.IgnorePlugin(/^\.\/locale$/, /moment$/), // 下面是下载的插件的配置 new CompressionWebpackPlugin({ algorithm: 'gzip', test: new RegExp('\\.(' + productionGzipExtensions.join('|') + ')$'), threshold: 10240, minRatio: 0.8 }), new webpack.optimize.LimitChunkCountPlugin({ maxChunks: 5, minChunkSize: 100 }) ] },
//跨域处理,可忽略 devServer: { proxy: {
'/api': { // 此处的写法,目的是为了 将 /api 替换成 https://www.baidu.com/ // target: 'xxx/xxx', target: 'http://xxx/xxx', // 允许跨域 changeOrigin: true, ws: true, pathRewrite: { '^/api': '' } } } } }

   第四步:服务器上的nginx配置gzip压缩:

gzip on;
gzip_min_length 1k;
gzip_buffers 16 64k;
gzip_http_version 1.1;
gzip_comp_level 6;   #1-9,为9的话最大消耗服务器内存以提高访问速度
gzip_types text/plain application/x-javascript text/css application/xml;
gzip_vary on;

  测试成功:第一次打开速度在2秒内,没什么延迟感可以接受

谷歌浏览器:

IE浏览器:

相关