vue项目打包部署初次访问慢问题

vue项目打包部署初次访问慢问题

#####打包部署访问

package.json中打包脚本部分

"scripts": {

"dev": "vue-cli-service serve",

"staging": "vue-cli-service serve --mode staging",

"production": "vue-cli-service serve --mode production",

"build:stage": "vue-cli-service build --mode staging",

"build:prod": "vue-cli-service build --mode production",

"preview": "node build/index.js --preview",

"lint": "eslint --ext .js,.vue src"

},

npm run build:stage

打包后,dist文件大概有20MB左右,首次访问单文件就有几兆

解决方案
复制代码
打包后,dist文件20多兆 
"compression-webpack-plugin": "^1.1.11",
npm install
vue.config.js配置
// 导入compression-webpack-plugin
const CompressionWebpackPlugin = require('compression-webpack-plugin')
// 定义压缩文件类型
const productionGzipExtensions = ['js', 'css']

configureWebpack: config => {
	config.name = name
	config.resolve.alias['@'] = resolve('src')
	config.performance = {
	  hints: 'warning',
	  //入口起点的最大体积 整数类型(以字节为单位)
	  maxEntrypointSize: 50000000,
	  //生成文件的最大体积 整数类型(以字节为单位 300k)
	  maxAssetSize: 30000000,
	  //只给出 js 文件的性能提示
	  assetFilter: function(assetFilename) {
		return assetFilename.endsWith('.js')
	  }
	}
	if (process.env.NODE_ENV !== 'development') {
	  // 生产环境
	  // 编译时删除console.log
	  config.optimization.minimizer[0].options.terserOptions.compress.drop_console = true
	  //  配置productionGzip-高级的方式
	  // 配置参数详解
	  // asset: 目标资源名称。 [file] 会被替换成原始资源。[path] 会被替换成原始资源的路径, [query] 会被替换成查询字符串。默认值是 "[path].gz[query]"。
	  // algorithm: 可以是 function(buf, callback) 或者字符串。对于字符串来说依照 zlib 的算法(或者 zopfli 的算法)。默认值是 "gzip"。
	  // test: 所有匹配该正则的资源都会被处理。默认值是全部资源。
	  // threshold: 只有大小大于该值的资源会被处理。单位是 bytes。默认值是 0。
	  // minRatio: 只有压缩率小于这个值的资源才会被处理。默认值是 0.8。
	  config.plugins.push(
		new CompressionWebpackPlugin({
		  filename: '[path].gz[query]',
		  algorithm: 'gzip',
		  test: new RegExp('\\.(' + productionGzipExtensions.join('|') + ')$'),
		  threshold: 10240,
		  minRatio: 0.8,
		  // 是否删除原文件 
		  deleteOriginalAssets: true,
		})
	  )
	} else {
	  // 开发环境
	}
  },

#####nginx配置

开启gzip

gzip on;

复制代码
# 启用gzip压缩的最小文件,小于设置值的文件将不会压缩
gzip_min_length 1k;

# 设置压缩所需要的缓冲区大小
gzip_buffers 16 64k;

# 设置gzip压缩针对的HTTP协议版本
gzip_http_version 1.1;

# gzip 压缩级别,1-9,数字越大压缩的越好,也越占用CPU时间
gzip_comp_level 9;

gzip_types text/plain application/x-javascript application/javascript text/javascript text/css application/xml application/x-httpd-php image/jpeg image/gif image/png;

# 是否在http header中添加Vary: Accept-Encoding,建议开启
gzip_vary on;

# 禁用IE6 gzip
gzip_disable "MSIE [1-6]\.";
相关推荐
子兮曰3 小时前
把 649 种文件格式塞进一个网页里:一个「文件不出浏览器」的预览器
前端·javascript·后端
paopaokaka_luck6 小时前
基于springboot+vue的智慧家政管理系统(AI问答、 WebSocket实时沟通、ECharts运营分析、订单规则与服务追踪)
java·javascript·spring boot·数据分析·echarts·mybatis
sm_926787056 小时前
RFID 标签打印的技术实现要点与二次开发实践
java·大数据·前端·c++·编辑器
IMPYLH6 小时前
HTML 的 <video> 元素
前端·html
溪语流沙7 小时前
【每天一个CSS | Day19】流光文字与一笔写成的手写签名
前端·javascript·css
逐光者9337 小时前
STM32——SPI 屏 · Flash · 高速
java·前端·stm32
To_OC7 小时前
同样是让 AI 写全栈,为什么别人一句话就够了
前端·前端框架·next.js
CDwenhuohuo7 小时前
electron pc项目打包成桌面端
前端·javascript·electron
前端大斗师7 小时前
「大于 1000」把 1000 元那单也算进去了:我在 Vue3 订单页对了 10 句话
前端·人工智能·typescript·大模型·原力计划
Jmyd01238 小时前
用 Web VR 引擎搭建 3D 虚拟展厅:从素材上云到多端实时渲染的完整数据链路
前端·3d·vr·三维数字化