vue 打包过大 vue.config.js 配置解决方案 优化首屏加载

    技术2025-03-21  33

    vue打包之后,首屏加载过慢,响应很久,影响用户体验的优化

    第一步:安装  webpack-bundle-analyzer 分析包大小

    cnpm i webpack-bundle-analyzer -S -D

    在 vue.config.js 文件中引用:

    const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin;

    配置:

    configureWebpack: config => {

    if (process.env.NODE_ENV === 'production') {  //表示在生成run build 的时候在进行包大小的分析

    config.plugins.push(new BundleAnalyzerPlugin());

    }}

    方法一: 使用CDN的方式加载一些固定库 如vue,vue-router ,vuex ,jquery 等等

    具体操作:1.配置 vue.config.js

    configureWebpack: config => { config.externals = { ‘vue’: ‘Vue’,

    'vuex ':'Vuex ',

    'vue-router ':'VueRouter'

    'jquery':'jquery' } }

    2.在根目录下面的public文件夹下的index中引入cnd 

    注意事项:1.引入的cdn版本必须高于package.json中的版本。2externals对象的value(标红部分)值必须是cdn中导出值的变量名称,

    方法二: Vue开启Gzip Nginx开启Gzip

    npm compression-webpack-plugin --save-dev

    // 导入compression-webpack-plugin

    const CompressionWebpackPlugin = require('compression-webpack-plugin')

    // 定义压缩文件类型const productionGzipExtensions = ['js', 'css']

    //在vue.config.js中配置

    configureWebpack: {

    plugins: [

    new CompressionWebpackPlugin({

    filename: '[path].gz[query]',

    algorithm: 'gzip',

    test: new RegExp('\\.(' + productionGzipExtensions.join('|') + ')$'),

    threshold: 10240,

    minRatio: 0.8

    })

    ]

    }}

     

    Processed: 0.016, SQL: 9