解决vue-cli webpack打包开启Gzip 报错问题


Posted in Javascript onJuly 24, 2019

前两天项目上线,用vue-cli npm run build命令打包,打包完成后我擦吓了一跳,15M。本来暂时不打算优化的,但是每次看着部署包这么大,想想还是先优化一下,让包好看点,免得以后出现心理阴影!

在把 map文件干掉后,发现webpack这打包的速度,也忒感人了。在进行不自动生成 map文件设置时,有看到webpack自带的productionGzip功能,索性就一次性一起鼓捣鼓捣。

下面是瞎鼓捣历程,差点就鼓捣不出来了。

1、在项目 根目录config/index.js中build内找到productionGzip: false,把false改为true。与 productionSourceMap 刚好相反。

解决vue-cli webpack打包开启Gzip 报错问题

属性值修改后,这个时候可以执行 npm run build。但是会报错,提示找不到 "Cannot find module 'compression-webpack-plugin'"

解决vue-cli webpack打包开启Gzip 报错问题

2、也就是说需要安装依赖compression-webpack-plugin 官方推荐的命令是:(但是网不好的话就凉凉了)

npm install --save-dev compression-webpack-plugin //在没有给定版本号时该命令默认安装最新版compression-webpack-plugin,问题恰恰就出在这

安装完成以后,重新运行 npm run build,然后悲剧了:

解决vue-cli webpack打包开启Gzip 报错问题

从报错显示获知,是配置选项验证失败,但是是哪一项验证失败,或者那些项验证失败就不晓得了,打开报错日志,越看越蒙圈了,一脸茫然。从源代码里面也没看出个所以然。

解决vue-cli webpack打包开启Gzip 报错问题

从校验参数来看,参数就两个,但是第一个参数内属性很多。

解决vue-cli webpack打包开启Gzip 报错问题,从结果看是这行代码里面执行的校验失败了。至于这行代码执行的什么,水平不够查不下去了。

最后没得法了,只能去官网 https://www.npmjs.com/package/compression-webpack-plugin上看看,有么得啥突破。进去第一眼就瞄到了 2.0.0•Public•Published3 months ago,一下就感觉有点不对了,一般小版本的更新都是 1.xx.xx,很少这种直接全零的,全零的一般适用于大版本的升级更新,再看看上面的配置项检验失败,选项属性匹配不上。突然有种莫名被坑的感觉。接着看下面的介绍和文档,①先对应了下node的版本 node@v8.11.3,还在匹配的范围内。② Requirements:This module requires a minimum of Node v6.9.0 and Webpack v4.0.0 (此模块最低需要 Nodev6.9.0和Webpack v4.0.0),我这webpack版本明显差一大截。这下总算找到症结所在了。

解决vue-cli webpack打包开启Gzip 报错问题

解决vue-cli webpack打包开启Gzip 报错问题

解决vue-cli webpack打包开启Gzip 报错问题

3、找到症结所在,那处理起来就简单了。既然最新版本太高,在用的webpack高攀不起,那就只能给它降级了,木得法。

①卸载已经安装的最新版2.0compression-webpack-plugin安装包。

npm uninstall --save-dev compression-webpack-plugin

② 重新安装1.1.12版本(该版本为1.1的最新版)。卸载其实可以不用,直接执行安装命令,进行版本覆盖也行。

npm install --save-dev compression-webpack-plugin@1.1.12
//记得带版本号

③等安装好之后,重新执行 npm run build 进行打包,终于成功了,真他妈艰难!

安装过程中,还遇到另外一个问题。网速和墙的问题:

解决vue-cli webpack打包开启Gzip 报错问题

这个倒是好解决,使用淘宝镜像 就行。 安装过程以及可能出现的问题和解决 可以移步https://3water.com/article/166090.htm进行参考!

总结

以上所述是小编给大家介绍的解决vue-cli webpack打包开启Gzip 报错问题,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Javascript 相关文章推荐
javascript学习之闭包分析
Dec 02 Javascript
情人节专属 纯js脚本1k大小的3D玫瑰效果
Feb 11 Javascript
浅谈JavaScript之事件绑定
Jul 08 Javascript
div模拟选择框示例代码
Nov 03 Javascript
Javascript学习笔记之函数篇(五) : 构造函数
Nov 23 Javascript
jQuery使用fadeout实现元素渐隐效果的方法
Mar 27 Javascript
js基于面向对象实现网页TAB选项卡菜单效果代码
Sep 09 Javascript
BootStrap智能表单demo示例详解
Jun 13 Javascript
AngularJS基础 ng-paste 指令简单示例
Aug 02 Javascript
详解开发react应用最好用的脚手架 create-react-app
Apr 24 Javascript
JS div匀速移动动画与变速移动动画代码实例
Mar 26 Javascript
微信小程序 接入腾讯地图的两种写法
Jan 12 Javascript
Vue  webpack 项目自动打包压缩成zip文件的方法
Jul 24 #Javascript
JavaScript面向对象中接口实现方法详解
Jul 24 #Javascript
IE11下处理Promise及Vue的单项数据流问题
Jul 24 #Javascript
微信小程序如何引用外部js,外部样式,公共页面模板
Jul 23 #Javascript
详解Vue中的基本语法和常用指令
Jul 23 #Javascript
js如何获取访问IP、地区、当前操作浏览器
Jul 23 #Javascript
node.js express框架简介与实现
Jul 23 #Javascript
You might like
《一拳超人》埼玉一拳下去,他们存在了800年毫无意义!
2020/03/02 日漫
PHP可变函数的使用详解
2013/06/14 PHP
Javascript 面向对象 继承
2010/05/13 Javascript
jQuery.clean使用方法及思路分析
2013/01/07 Javascript
基于jquery插件制作左右按钮与标题文字图片切换效果
2013/11/07 Javascript
网页禁用右键菜单和鼠标拖动选择方法小结
2015/02/25 Javascript
使用 jQuery.ajax 上传带文件的表单遇到的问题
2016/10/31 Javascript
如何编写jquery插件
2017/03/29 jQuery
详解vue-cli开发环境跨域问题解决方案
2017/06/06 Javascript
Web技术实现移动监测的介绍
2017/09/18 Javascript
使用vue-cli+webpack搭建vue开发环境的方法
2017/12/22 Javascript
Vue Promise的axios请求封装详解
2018/08/13 Javascript
vue插槽slot的理解和使用方法
2019/04/03 Javascript
webpack的 rquire.context用法实现工程自动化的方法
2020/02/07 Javascript
各种Python库安装包下载地址与安装过程详细介绍(Windows版)
2016/11/02 Python
Python微信企业号开发之回调模式接收微信端客户端发送消息及被动返回消息示例
2017/08/21 Python
Python实现替换文件中指定内容的方法
2018/03/19 Python
python numpy格式化打印的实例
2018/05/14 Python
Linux下安装python3.6和第三方库的教程详解
2018/11/09 Python
Python求平面内点到直线距离的实现
2020/01/19 Python
Pytorch通过保存为ONNX模型转TensorRT5的实现
2020/05/25 Python
Python requests及aiohttp速度对比代码实例
2020/07/16 Python
Python批量修改xml的坐标值全部转为整数的实例代码
2020/11/26 Python
详解Html5页面实现下载文件(apk、txt等)的三种方式
2018/10/22 HTML / CSS
美国大城市最热门旅游景点门票:CityPASS
2016/12/16 全球购物
巴西图书和电子产品购物网站:Saraiva
2017/06/07 全球购物
应届生污水处理求职信
2013/11/06 职场文书
资料员岗位职责
2013/11/17 职场文书
工程造价与管理专业应届生求职信
2013/11/23 职场文书
中学生演讲稿
2014/04/26 职场文书
学校安全防火方案
2014/06/07 职场文书
销售类求职信
2014/06/13 职场文书
2015年社区教育工作总结
2015/05/13 职场文书
永不妥协观后感
2015/06/10 职场文书
详解TypeScript的基础类型
2022/02/18 Javascript
使用Redis做预定库存缓存功能
2022/04/02 Redis