记录一次vue项目首页加载时间过长的优化

在用Vue2 框架进行单页面开发时,开发完成后项目打包到线上环境,发现vendor脚本和app.js均有3.0多M,ttf字体文件有10M之多,首次加载时间都超过20s,实在是慢到不行。

先贴上我的解决办法

1. 将ttf文件转换为woff文件

http://180.106.81.150:4379/mini-project/mini-project-web/tree/master/pages

2. 简单粗暴的使用gzip压缩

2.1 在index.js/config中将productionGzip设为true,这里要先安装compression-webpack-plugin,执行 npm i --save-dev compression-webpack-plugin@1.0.1 安装低版本否则会报错

据说安装了高版本的compression-webpack-plugin可以将assets改为filename,没尝试,不知道ok不

然后在执行打包命令 会生成一个一个的gz文件

2.2 后台配置

配置nginx服务器 nginx.conf文件

gzip on;
gzip_static on;
gzip_buffers 4 16k;
gzip_comp_level 5;
gzip_types text/plain application/javascript text/css application/xml        text/javascript application/x-httpd-php image/jpeg image/gif image/png;

 

最后结果 20s多 => 6s多

 

下面是我的一点疑问

在没使用gzip之前呢 想的是路由懒加载

1.使用const routeName = () => import(fileUrl) 的方法

需要配合syntax-dymaic-import插件,在babel.lrc文件中添加插件

{
  "presets": [
    ["env", {
      "modules": false,
      "targets": {
        "browsers": ["> 1%", "last 2 versions", "not ie <= 8"]
      }
    }],
    "stage-2"
  ],
  "plugins": ["transform-vue-jsx", "transform-runtime", "syntax-dynamic-import"]
}

但是打包会报错,具体原因不知,疑似版本和babel-core版本不匹配

所以升级了babel-core版本到7.0.0-bridge.0

package.json 部分依赖如下

    "@babel/cli": "^7.8.4",
    "@babel/core": "^7.9.0",
    "@babel/helper-module-imports": "^7.8.3",
    "@babel/plugin-syntax-dynamic-import": "^7.8.3",
    "@babel/plugin-syntax-jsx": "^7.8.3",
    "@babel/plugin-transform-runtime": "^7.9.0",
    "@babel/preset-env": "^7.9.5",
    "@babel/preset-react": "^7.9.4",
    "@babel/runtime": "^7.9.2",
    "autoprefixer": "7.2.3",
    "babel-core": "^7.0.0-bridge.0",
    "babel-eslint": "8.0.3",
    "babel-helper-vue-jsx-merge-props": "^2.0.3",
    "babel-loader": "^8.1.0",
    "babel-plugin-transform-vue-jsx": "^4.0.1",

 

然后修改babel.lrc文件如下

{
  "presets": [
    ["@babel/preset-env", {
      "modules": false,
      "targets": {
        "browsers": ["> 1%", "last 2 versions", "not ie <= 8"]
      }
    }]
    
  ],
  "plugins": ["transform-vue-jsx", "@babel/plugin-transform-runtime", "@babel/plugin-syntax-dynamic-import"]
}

然后执行打包命令,发现打包会卡住

emm……

两个小时之后……发现打包完成……不知道是不是这个项目比较大的原因……

不知道大家会不会出现这种情况,有解决方法的话请分享一下,谢谢

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值