html5首屏加载乐山暴雨,发布前端项目时因chunk-vendors过大导致首屏加载太慢,Vue Build时chunk-vendors的优化方案...

这个优化是两方面的,前端将文件打包成.gz文件,然后通过nginx的配置,让浏览器直接解析.gz文件。

1、compression-webpack-plugin插件打包.gz文件

安装插件

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

或者

yarn add compression-webpack-plugin --save-dev

vue.config.js配置插件

const CompressionWebpackPlugin = require('compression-webpack-plugin')

const productionGzipExtensions = ['js', 'css']

const isProduction = process.env.NODE_ENV === 'production'

....

configureWebpack: {

plugins: [

// Ignore all locale files of moment.js

new webpack.IgnorePlugin(/^\.\/locale$/, /moment$/),

new UglifyJsPlugin({

uglifyOptions: {

compress: {

drop_debugger: true,

drop_console: true

}

},

sourceMap: false,

parallel: true

}),

// 配置compression-webpack-plugin压缩

new CompressionWebpackPlugin({

algorithm: 'gzip',

test: new RegExp('\\.(' + productionGzipExtensions.join('|') + ')$'),

threshold: 10240,

minRatio: 0.8

})

]

},

2、nginx配置:

gzip config

# gzip config

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]\.";

完整示例

server {

listen 80;

# gzip config

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]\.";

root /usr/share/nginx/html;

location / {

# 用于配合 browserHistory 使用

try_files $uri $uri/ /index.html;

# 如果有资源,建议使用 https + http2,配合按需加载可以获得更好的体验

# rewrite ^/(.*)$ https://preview.pro.loacg.com/$1 permanent;

}

location /api {

proxy_pass https://preview.pro.loacg.com;

proxy_set_header X-Forwarded-Proto $scheme;

proxy_set_header Host $http_host;

proxy_set_header X-Real-IP $remote_addr;

}

}

server {

# 如果有资源,建议使用 https + http2,配合按需加载可以获得更好的体验

listen 443 ssl http2 default_server;

# 证书的公私钥

ssl_certificate /path/to/public.crt;

ssl_certificate_key /path/to/private.key;

location / {

# 用于配合 browserHistory 使用

try_files $uri $uri/ /index.html;

}

location /api {

proxy_pass https://preview.pro.loacg.com;

proxy_set_header X-Forwarded-Proto $scheme;

proxy_set_header Host $http_host;

proxy_set_header X-Real-IP $remote_addr;

}

}

3、示例

打包文件大小信息

DONE Compiled successfully in 43951ms 11:19:06 PM

File Size Gzipped

dist\js\chunk-vendors.6f36ee27.js 2729.43 KiB 829.53 KiB

dist\js\chunk-42ac50f8.3aed1f5b.js 260.22 KiB 62.60 KiB

dist\js\app.47d6af3d.js 89.26 KiB 27.35 KiB

dist\js\chunk-2f07b9a4.4a3fdd01.js 62.59 KiB 14.08 KiB

dist\js\chunk-3cfde34a.24cec922.js 24.67 KiB 7.74 KiB

dist\js\chunk-1d171181.fe12f22a.js 24.63 KiB 6.18 KiB

dist\js\user.d8960780.js 18.66 KiB 6.47 KiB

dist\js\chunk-05182e90.d2ed6c5c.js 16.77 KiB 5.63 KiB

dist\js\chunk-3dd96f82.41706c18.js 13.98 KiB 4.04 KiB

dist\js\chunk-3085d777.f0a8defc.js 9.91 KiB 2.88 KiB

dist\js\chunk-4d8431e9.3b47471d.js 8.94 KiB 3.25 KiB

dist\js\chunk-4492074c.9f53a6c6.js 8.37 KiB 3.14 KiB

dist\js\chunk-761f0cf1.de4d849b.js 8.15 KiB 2.69 KiB

dist\js\chunk-605ac6e0.cb0a2add.js 7.79 KiB 2.28 KiB

打包后的文件

957ed8a7ca73

image.png

Chrome访问

957ed8a7ca73

image.png

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

width:100vh与min-height:calc(100vh + 51px)

vh:相对于视窗的高度,那么vw:则是相对于视窗的高度。 “视区”所指为浏览器内部的可视区域大小,即window.innerWidth/window.innerHeight大小,不包含任务栏标题栏以及底部工具栏的浏览器区域大小。 详细vh的用法,大家可以参考http…

XML配置文件中的Spring配置文件

我的上一个博客非常简单,因为它涵盖了我从Spring 3.0.x到Spring 3.1.x的轻松升级,最后我提到可以将Spring模式升级到3.1,以利用Spring的最新功能。 在今天的博客中,我将介绍这些功能中最酷的功能之一:Spring配置文件。…

交大计算机专业怎样,计算机专业高校实力排名,上海交大第五,清华第二,第一毫无争议...

原标题:计算机专业高校实力排名,上海交大第五,清华第二,第一毫无争议计算机专业在近几年可谓是“大热”,众多考生抢破头也想当码农,背后的原因其实不难理解。互联网时代的到来,计算机早已渗透到…

python_day7 绑定方法与非绑定方法

在类中定义函数如果 不加装饰器 则默认 为对象作为绑定方法 如果增加 classmethod 是 以 类 作为绑定方法 增加 classmethod 是 非绑定方法,就是不将函数 绑定 ##################### class Foo: def func(self): print(self) classmethod def func…

Spring Security使用Hibernate实现自定义UserDetails

大多数时候,我们将需要在Web应用程序中配置自己的安全访问角色。 这在Spring Security中很容易实现。 在本文中,我们将看到最简单的方法。 首先,我们将在数据库中需要以下表格: CREATE TABLE IF NOT EXISTS mydb.security_role (…

python之路-面向对象

编程范式 编程是 程序 员 用特定的语法数据结构算法组成的代码来告诉计算机如何执行任务的过程 , 一个程序是程序员为了得到一个任务结果而编写的一组指令的集合,正所谓条条大路通罗马,实现一个任务的方式有很多种不同的方式, 对这…

西安邮电大学计算机科学与技术有专硕吗,2020年西安邮电大学计算机学院考研拟录取名单及排名!...

20考研复试调剂群:4197552812020年西安邮电大学计算机学院硕士研究生招生复试成绩及综合排名各位考生:现将我院2020年硕士研究生招生复试成绩及综合排名公布(最终录取名单及新生学籍注册均以“全国硕士研究生招生信息公开平台”备案信息为准)&#xff0c…

用Java排序的五种有用方法

Java排序快速概述: 正常的列表: private static List VEGETABLES Arrays.asList("apple", "cocumbers", "blackberry");Collections.sort(VEGETABLES);output: apple, blackberry, cocumbers反向排序: pri…

[python]-数据科学库Numpy学习

一、Numpy简介: Python中用列表(list)保存一组值,可以用来当作数组使用,不过由于列表的元素可以是任何对象,因此列表中所保存的是对象的指针。这样为了保存一个简单的[1,2,3],需要有3个指针和三个整数对象。对于数值运…

检测一个点, 是否在一个半圆之内的方法

demo: http://jsbin.com/lihiwigaso 需求: 一个圆分成分部分, 鼠标滑上不同的区域显示不同的颜色 思路: 先判断这个点是否在圆之内, 再判断是否在所在的三角形之内就可以了 所需要的全部源码: <!DOCTYPE html> <html> <head><meta charset"utf-8&quo…

计算机网络设备接地规范,网络机房防雷接地的四种方式及静电要求

编辑----河南新时代防雷由于计算机网络系统的核心设备都放置在网络机房内&#xff0c;因而网络机房防雷接地有了较高的环境要求&#xff0c;良好的接地系统是保证机房计算机及网络设备安全运行&#xff0c;以及工作人员人身安全的重要措施。直流地的接法通常采用网格地&#xf…

抓住尾部的StackOverFlowError

使用Java程序时可能要处理的一种更烦人的情况是StackOverFlowError&#xff0c;如果您有一个很好的可生产的测试用例&#xff0c;那么关于使用堆栈大小或设置条件断点/某种痕迹 。 但是&#xff0c;如果您有一个测试案例可能一次失败100次&#xff0c;或者像我的案例一样在AWTM…

Gunicorn配置部分的翻译

写在前面&#xff0c;虽然翻译得很烂&#xff0c;但也是我的劳动成果&#xff0c;转载请注明出处&#xff0c;谢谢。 Gunicorn版本号19.7.1 Gunicorn配置 概述 三种配置方式 优先级如下&#xff0c;越后的优先级越大 1.框架的设置&#xff08;现在只有paster在用这个&#xff0…

台式计算机风扇声音大怎么处理,如何解决电脑电源风扇声音大的问题?

现在的台式机一般用3到5年后&#xff0c;一些问题自然也就慢慢表现出来了。很多网友在使用电脑过程中都有电脑风扇声音大怎么办的问题&#xff0c;电脑风扇声音大就会让人觉得使用电脑很不舒服&#xff0c;怎么办好呢&#xff1f;出现重要的问题要如何解决好呢&#xff1f;现在…

jsp分页功能

http://blog.csdn.net/xiazdong/article/details/6857515转载于:https://www.cnblogs.com/Baronboy/p/6112403.html

Spring Security第1部分–具有数据库的简单登录应用程序

什么是Spring Security&#xff1f; Spring Security是一个提供安全解决方案的框架&#xff0c;可在Web请求级别和方法级别上处理身份验证和授权。 Spring安全性通过两种方式处理安全性。 一种是安全的Web请求&#xff0c;另一种是在URL级别限制访问。 Spring Security使用Serv…

计算机应用 winxp,2017年职称计算机考试模块WindowsXP试题

2017年职称计算机考试模块WindowsXP试题全国专业技术人员计算机应用能力考试是专业技术人员资格考试的一种。接下来应届毕业生小编为大家搜索整理了2017年职称计算机考试模块WindowsXP试题&#xff0c;希望大家有所帮助。1. Windows XP中删除某个文件的快捷方式【 A 】。A. 对原…

Python基础(8)_迭代器、生成器、列表解析

一、迭代器 1、什么是迭代 1 重复   2 下次重复一定是基于上一次的结果而来 1 l[1,2,3,4] 2 count0 3 while count < len(l): 4 print(l[count]) 5 count1 迭代举例2、可迭代对象 可进行.__iter__()操作的为可迭代对象 #print(isinstance(str1,Iterable)),判断str…

Angularjs2-EXCEPTION: Response with status: 200 Ok for URL:

利用jsonp跨域请求数居&#xff0c;报错 core.umd.js:3070 EXCEPTION: Response with status: 200 Ok for URL: 参考&#xff1a;stackoverflow 未解决。。。脑仁疼。。。有小伙伴也碰到过这个问题么&#xff1f; 16/11/30 问题解决 1.服务器端API允许跨域访问(返回的数据添加允…

图片无法删除要计算机管理员,存在桌面的图片删不掉,怎么处理?提示是需要管理员权限。...

将下面代码复制到记事本里&#xff0c;重命名为1.bat&#xff0c;然后打开&#xff0c;这时你右键图片会出现管理员取得所有权&#xff0c;然后取得所有权后再删除试试Windows Registry Editor Version 5.00[HKEY_CLASSES_ROOT\*\shell\runas]管理员取得所有权NoWorkingDirecto…