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

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

})

]

}}

 


版权声明:本文为qq_35104350原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。