vue首屏优化压缩打包

323 阅读2分钟

一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第8天,点击查看活动详情

作为一个后端人员,偶尔也会接触一下前端的技术,比如打包部署等等。

目前有一个小项目,服务器的带宽只有1M,导致的的问题是页面首屏加载特别慢,打开控制台发现,很多静态文件,js、css等等加载完成都需要5到10秒,这对于用户来说是不能容忍的。

遇到问题我们就要解决问题,我所熟知的方法就是在vue打包的时候进行压缩,然后在nginx部署时增加相应的配置即可。

下面我来具体描述下操作过程。

打包

安装依赖

先安装如下的压缩打包依赖:

cnpm install --save compression-webpack-plugin

或者自己选择需要的版本。

vue项目添加配置

在vue.conf.js当中,增加如下的配置:

chainWebpack: config => {
  const CompressionWebpackPlugin = require('compression-webpack-plugin')
  if (process.env.NODE_ENV === 'production') {
    config.plugin('CompressionPlugin').use(
        new CompressionWebpackPlugin({
          test: /.(js|css)$/,
          threshold: 10240, // 超过10kb的文件就压缩
          deleteOriginalAssets:true, // 不删除源文件
          minRatio: 0.8
        })
    )
  }
}

打包

直接执行打包命令:

npm run build

打包后的文件如下所示:

js文件:

image.png

css文件:

image.png

相比于未压缩之前,已经小了很多。

部署

目前我用到的项目都是使用nginx来部署的,总体来说轻量快捷,端口占用少,且修改、替换文件相当容易。

使用压缩后的打包文件dist,需要对nginx做一些额外的配置才能生效,如下所示:

gzip_static on;

将上面所示的文件放到你的nginx配置的server当中即可。

image.png

reload 或者 restart nginx就完成部署啦。

我们来看下时间,已经很不错了,比之前提升了好几倍:

image.png


本编文章就介绍到这了。