版本:vue2.0+ 构建工具 vue-cli 打包工具webpack
1、项目构建完成,首次打包后发现打包过程很慢,查看生成的文件中有一个map文件,其功能主要是用于测试,取消生成map文件,找到config/index.js,箭头所指的地方修改为false即可

2、打包后首屏加载速度慢,加载的资源中vendor.js过大,是因为引用的第三方库过多导致,可以把其中vue vuex vue-router 以及axios分离出来采用cdn加载,在index.html中引入

然后找到build/webpack.base.conf.js,在module.exports中添加以下代码

然后还需查看router中各组件的加载方式是否是按需加载,统一改为以下方式

再次打包后,会发现生成了很多1.xxx.js, 2.xxx.js等,然后 vendor文件也比最初小了很多
3、时间久了之后,项目需求增多,导致项目体积变大,这时可以考虑开启GZIP压缩,找到config/index.js中,修改以下配置

然后在build/webpack.prod.conf.js中找到以下代码修改

然后再次打包,可能会报错TypeError: Cannot read property 'emit' of undefined
这时候需要先卸载之前的compression-webpack-plugin
安装1.12版本的compression-webpack-plugin
卸载命令:npm uninstall --save-dev compression-webpack-plugin
安装1.12命令:npm install --save-dev compression-webpack-plugin@1.1.2
再次运行后打包正常
4、打包后只会生成一个app.css,如果体积过大,并且各组件多使用了scoped样式,则在build/webpack.prod.conf.js中可配置,禁止合并到打包后的app.css,找到allChunks,修改为false,如下:

5、最后打包时,webpack会默认将10K以下的图片转化为base64,如果项目中的图片过多(base64过多,也会导致文件过大,考虑到首屏速度),可以考虑修改以下的数值(build/webpack.case.conf.js),单位为b,然后在合适的地方采用懒加载的方式加载图片
