vue项目打包优化--进步首屏加载速率

程序员 2024-9-27 02:00:08 100 0 来自 中国
1、移除 preload 与 prefetch

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

1.png vue.config.js的设置
  chainWebpack: config => {    // 移除 preload(预载) 插件    config.plugins.delete('preload')    // 移除 prefetch(预取) 插件    config.plugins.delete('prefetch')  }添加设置完成

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          })        ]      }压缩前:


压缩后

4.png 4、设置使用 CDN 方式引入资源库

有一些js的依赖我们可以不消打包到我们步伐中,可以使用cdn的方式来链接js的依赖文件。
1、起首先看设置:在vue.config.js中设置不打包的文件
configureWebpack: {      externals: {        'vue': 'Vue',        'vue-router': 'VueRouter',        'vuex': 'Vuex',        'element-ui': 'ELEMENT',      }    }2、检察项目中文件依赖包的版本


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设置之前文件


5、设置完cdn的文件

7.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        }      })  }在线压缩图片
您需要登录后才可以回帖 登录 | 立即注册

Powered by CangBaoKu v1.0 小黑屋藏宝库It社区( 冀ICP备14008649号 )

GMT+8, 2024-10-18 16:42, Processed in 0.166702 second(s), 35 queries.© 2003-2025 cbk Team.

快速回复 返回顶部 返回列表