美文网首页WEB前端笔记本
vue项目打包优化--提高首屏加载速度

vue项目打包优化--提高首屏加载速度

作者: 文菇凉666 | 来源:发表于2022-11-26 12:48 被阅读0次

1、移除 preload 与 prefetch

vue 脚手架默认开启了 preload 与 prefetch,当我们项目很大时,这个就成了首屏加载的最大元凶了。先简单了解一下 preload 与 prefetch。
1、preload 与 prefetch 都是一种资源预加载机制;
2、preload 是预先加载资源,但并不执行,只有需要时才执行它;
3、prefetch 是意图预获取一些资源,以备下一个导航/页面使用;
4、preload 的优先级高于 prefetch。


2.png

vue.config.js的配置

  chainWebpack: config => {
    // 移除 preload(预载) 插件
    config.plugins.delete('preload')
    // 移除 prefetch(预取) 插件
    config.plugins.delete('prefetch')
  }

添加配置完成


3.png

2、使用 terser-webpack-plugin 清除 console.log

开发过程中我们往往需要 console.log 进行调试,调试完后一般也会删除或注释掉,但难免有时会忘记,所以可以使用 terser-webpack-plugin 来清除 console.log。
首先需要下载依赖
npm install terser-webpack-plugin --save-dev
然后配置

chainWebpack: (config) => {
    config.optimization.minimizer('terser').tap((args) => {
        args[0].terserOptions.compress.drop_console = true
        return args
      })
}

3、使用 compression-webpack-plugin 开启 gzip 压缩

1、下载依赖
如果配置完成 有报错的话可以降低版本 默认的下载最新版本
npm install compression-webpack-plugin@6.1.1 -D
2、修改配置

configureWebpack: config=>{
        config.resolve={
          ...config.resolve,
          alias: {
            'vue$': 'vue/dist/vue.esm.js',
            '@': path.resolve(__dirname, './src'),
          }
        },
        config.externals= {
          'vue': 'Vue',
          'vue-router': 'VueRouter',
          'vuex': 'Vuex',
          'element-ui': 'ELEMENT',
        }
        config.plugins = [
          ...config.plugins,
          // 开启 gzip 压缩
          new CompressionPlugin({
            filename: '[path][base].gz',
            algorithm: 'gzip',
            test: /\.js$|\.css$|\.html$/,
            threshold: 10240,
            minRatio: 0.8
          })
        ]
      }

压缩前:


11.png

压缩后


22.png

4、配置使用 CDN 方式引入资源库

有一些js的依赖我们可以不用打包到我们程序中,可以使用cdn的方式来链接js的依赖文件。
1、首先先看配置:在vue.config.js中设置不打包的文件

configureWebpack: {
      externals: {
        'vue': 'Vue',
        'vue-router': 'VueRouter',
        'vuex': 'Vuex',
        'element-ui': 'ELEMENT',
      }
    }

2、查看项目中文件依赖包的版本


4.png

3、在index.html中引入需要外联的资源

  <script src="https://cdn.jsdelivr.net/npm/vue@2.6.11/dist/vue.min.js"></script>
    <script src="https://cdn.jsdelivr.net/npm/vue-router@3.2.0/dist/vue-router.min.js"></script>
    <script src="https://cdn.bootcdn.net/ajax/libs/element-ui/2.15.9/index.min.js"></script>
    <script src="https://cdn.jsdelivr.net/npm/vuex@3.4.0/dist/vuex.min.js"></script>

4、没有开启cdn配置之前文件


1.png

5、配置完cdn的文件


6.png

5、压缩图片

1、下载依赖
cnpm install image-webpack-loader --save-dev
2、设置配置

  // webpack相关配置
  chainWebpack: (config) => {
    config.optimization.minimizer('terser').tap((args) => {
        args[0].terserOptions.compress.drop_console = true
        return args
      })
      //移除预载插件
    config.plugins.delete('preload')
    //移除预取插件
    config.plugins.delete('prefetch')
    //图片压缩
    config.module
      .rule('images')
      .use('imageWebpackLoader')
      .loader('image-webpack-loader')
      .options({
        disable: process.env.NODE_ENV === 'development', // 开发环境下禁止压缩
        gifsicle: {
          interlaced: false
        }
      })
  }

在线压缩图片

相关文章

  • 常见面试题--js+css+vue

    1、变量提升、函数提升 2、数组的常用方法 3.优化首屏加载速度 4.Vue 首屏加载速度优化 5、Vue如何设置...

  • Vue性能优化

    性能优化的手段 目标:降低打包后文件大小,提高首屏加载速度 手段: 1.懒加载 运用懒加载则可以将路由对应的页面组...

  • VUE项目优化汇总

    注:本文只适用于 vue-cli 初始化的项目或依赖于 webpack 打包的项目 * 首屏加载优化 背景:基于v...

  • Vue项目首屏加载速度优化

    一、路由懒加载 1、作用 提升用户体验,提升首屏组件加载速度,解决白屏问题 2、代码示例 2.1 未使用路由懒加载...

  • Vue首屏加载慢的优化方案

    使用vue构建项目首屏加载时,出现加载慢,白屏的问题解决方案: 步骤一 webpack来打包vue项目,vendo...

  • 记前端项目首屏加载优化(网络篇)

    继之前的一篇《记前端项目首屏加载优化(打包篇)》之后,这次来讲一讲我的首屏加载在网络方面的优化?。 写在前面 资源...

  • 前端性能优化

    优化项目加载速度,首屏渲染速度。 html优化使用 声明减少嵌套层级减少不必要的Dom元素标签...

  • vue打包优化

    vue打包优化 首屏加载慢也是网络慢资源也比较大如下图,加载完需要15s......崩了...image 配置到了...

  • 构建工具

    Vue 首屏加载优化 关于 Vue 首屏加载优化的一点总结为什么我们要做三份 Webpack 配置文件 在知乎上我...

  • Vue 首屏加载速度优化

    参考文章https://blog.csdn.net/weixin_42604828/article/details...

网友评论

    本文标题:vue项目打包优化--提高首屏加载速度

    本文链接:https://www.haomeiwen.com/subject/hmcqfdtx.html