入职后接手website-html和website-mobile项目,发现项目加载速度不太理想,于是结合自己之前的经验对项目做了优化。此篇文章主要记录这次优化详情。

原始项目:
开发环境:
website-html: app.js 8.1MB

website-mobile: app.js 8.2MB

线上环境:
website-html: app.js:1.1MB 加载时间:3.46s(平均)

website-mobile: app.js 1.2MB 加载时间: 1.64s (平均)

优化过程:
优化vue-cli构建的项目一般分为工程层面和代码层面,这次主要在工程层面做优化,思路如下:

1.是否采用了懒加载;

2.是否打包了vue,vue-router这些类库;

3.是否开启压缩;

4.是否打包了map文件;

经过检查项目工程,发现路由组件已经使用懒加载方式引入(1),map文件未打包(4);

所以我只针对(2)(3)做了优化;

对于第二条,对于项目依赖的类库文件,如果打包进bundle中,会大大增加打包后的项目体积,所以我们一般通过webpack配置external来从外部去获取这些依赖的包(https://www.bootcdn.cn);

在webpack.base.conf.js文件里

添加如下代码:(用到哪些就指明哪些)

在index.js取消这些类库的import和use:

在index.html中引入这些类库的cdn:

针对第三点,之前会好奇,我后端服务器开启了gzip,那么前端配置这个有什么用?

其实,nginx给你返回js文件的时候,会判断是否开启gzip,然后压缩后再还给浏览器。但是nginx其实会先判断是否有.gz后缀的相同文件,有的话直接返回,nginx自己不再进行压缩处理。

而压缩是要时间的!不同级别的压缩率花的时间也不一样。

所以提前准备gz文件,可以更加优化。

而webpack配置productionGzip,需要一个插件配合compression-webpack-plugin,所以需要先在项目中安装npm install --save-dev compression-webpack-plugin;

经过以上简单的优化之后,查看下效果:

开发环境:
website-html: app.js 1.6MB(原始8.1MB) 精简率80.2%

website-mobile: app.js 1.6MB(原始8.2MB) 精简率80.5%

线上环境(打包压缩后):
website-html: app.js:177KB(原始1.1MB) 加载时间:722ms(3.46s)(平均) 体积精简率84.4% 加载速度提升79.1%

website-mobile: app.js 187KB(原始1.2MB) 加载时间: 705ms(1.64s)(平均) 体积精简率84.9% 加载速度提升57%

除此之外,后续可优化的点还有:

1.取消JQ的引入,自定义用到的JQ方法;
2.取消iview的引入,自定义message组件;
3.取消museUI的引入,自定义menu组件;

新公司官网项目优化实践(Vue)的更多相关文章

  1. 如何从sun公司官网下载java API文档(转载)

    相信很多同人和我一样,想去官网下载一份纯英文的java API文档,可使sun公司的网站让我实在很头疼,很乱,全是英文!所以就在网上下载了别人提供的下载!可是还是不甘心!其实多去看看这些英文的技术网站 ...

  2. angular2自学笔记---官网项目(一)

    1.单向数据绑定的'插值表达式' angular中最典型的数据显示方式:把HTML模板(template)的控件绑定到angular组件的属性(component相当于一个构造函数,下面例子中的这个构 ...

  3. java实现抓取某公司官网新闻

    这里先说一下,实习期的一个项目,当时并没有该合作公司的获取新闻的接口,但是项目又急着上线,所以总监就让我来做一个简单的抓取,现将主要的工具类NewsUtil.java贴出来供大家参考. NewsUti ...

  4. 用django2.1开发公司官网(上)

    1.在MySQL中新建数据库 show databases;//查看已经有的数据库 create database guanwang; 2.新建django项目guan 1.使用pycharm新建dj ...

  5. 公司官网建站笔记(一):腾讯云服务器装CentOS8.2系统、重置密码、远程ssh登陆、sftp传递文件以及新建开发者账户

    前言   本篇使用的是腾讯云服务器,讲解了部署安装服务器CentOS8.2系统,重置密码,添加用户,远程登陆,远程传递文件等基本流程.   前提条件   购买了腾讯云服务器,如下图:     云服务器 ...

  6. C游新官网总结

    从2017年9月18号,我开始独立做C游新官网项目.第一次独立完成项目,压力还是挺大的,毕竟还要自己去写前端,前端我已经忘了差不多了. 做这个网站主要是公司开始转型,开始自己建立渠道倒量,这样网站的S ...

  7. 个人官网第8次升级(新功能、用户体验、修复bug、系统优化)

    1.新功能. 操作日志和搜索日志的Excel报表下载. 2.用户体验. 如果是通过搜索,进入到一篇内容, 搜索关键词需要高亮. 比如,搜索"程序员"出现若干内容链接,打开链接的页面 ...

  8. 巧用百度Site App新组件为企业官网打造移动站

    一年前我曾经详细介绍过百度Site App,时隔一年的发展,Site App再一次发生了翻天覆地的变化:自定义程度更高.新增电话地图组件.增加流量统计.增加广告管家.生成APP客户端等功能,百度Sit ...

  9. 小谢第58问:nuxt搭建企业官网

    最近公司要重构公司官网,jq+bootstrap 改为了vue,刚开始我以为用vue不是挺好的嘛,后来才发现,有于vue单页面的特性,不利于搜索引擎的抓取,因此在seo方面需要另外想办法,于是乎,就找 ...

随机推荐

  1. Linux系统编程——进程间通信(System V IPC 对象)

    基本查看命令 ipcs  -m查看共享内存        ipcs -s查看信号量        ipcs -q查看消息队列 ipcrm  -m  id 删除共享内存   -M+key值 ipcrm ...

  2. A Tutorial on Network Embeddings

    A Tutorial on Network Embeddings paper:https://arxiv.org/abs/1808.02590   NE 的中心思想就是找到一种映射函数,该函数将网络中 ...

  3. 取消div,a等标签点击效果

    当标签被设置onclick事件之后,在有些手机浏览器中,点击这些标签,会有点击变色效果.想要取消点击变色效果. 添加:div{-webkit-tap-highlight-color:rgba(0,0, ...

  4. AC日记——「SCOI2015」小凸玩矩阵 LiBreOJ 2006

    「SCOI2015」小凸玩矩阵 思路: 二分+最大流: 代码: #include <bits/stdc++.h> using namespace std; #define maxn 300 ...

  5. Linux下文件属性

    在Linux下输入命令ls -l /etc/termcap /root/install.log,我们经常看到,这后面的一串内容具体是什么含义呢?[root@www ~]# ls -l /etc/ter ...

  6. cookie笔记(二)

    小荔枝 增 删 查 改 <form action="javascript:void(0)" method="get" accept-charset=&qu ...

  7. CentOS7.5安装网易云音乐

    CentOS7中一直没有一个像样的音乐播放器,网易云音乐与深度科技团队在半年前就启动了“网易云音乐Linux版“, 但是只提供了Ubuntu(14.04&16.04)和deepin15版本,并 ...

  8. CentOS7.5删除旧的内核

    [root@localhost ~]# uname -r3.10.0-862.3.2.el7.x86_64 [root@localhost ~]# rpm -qa | grep kernelkerne ...

  9. 2018 icpc 徐州现场赛G-树上差分+组合数学-大佬的代码

    现场赛大佬打印的代码,观摩了一哈. 写了注释,贴一下,好好学习.%%%PKU 代码: //树上差分(LCA) #include<bits/stdc++.h> #define For(i,x ...

  10. C# 推送到极光

    https://docs.jiguang.cn/jpush/resources/ 下载后有完整的例子 引用 Jiguang.JPush.dll using System; using Jiguang. ...