解决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计算当月剩余天数(天数计算器)示例代码
Jan 09 Javascript
Jquery实现仿腾讯微博发表广播
Nov 17 Javascript
原生JS实现图片左右轮播
Dec 30 Javascript
简单实现IONIC购物车功能
Jan 10 Javascript
js 颜色选择插件
Jan 23 Javascript
基于Bootstrap框架菜鸟入门教程(推荐)
Sep 17 Javascript
解决Vue使用mint-ui loadmore实现上拉加载与下拉刷新出现一个页面使用多个上拉加载后冲突问题
Nov 07 Javascript
AngularJS实现自定义指令及指令配置项的方法
Nov 20 Javascript
JavaScript实现一个带AI的井字棋游戏源码
May 21 Javascript
jquery引入外部CDN 加载失败则引入本地jq库
May 23 jQuery
Vue组件中的data必须是一个function的原因浅析
Sep 03 Javascript
微信小程序自定义可滑动顶部TabBar选项卡实现页面切换功能示例
May 14 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
经典的PHPer为什么被认为是草根?
2007/04/02 PHP
PHP开发工具ZendStudio下Xdebug工具使用说明详解
2013/11/11 PHP
PHP集成百度Ueditor 1.4.3
2014/11/23 PHP
PHP也能干大事 随机函数
2015/04/14 PHP
Thinkphp5+plupload实现的图片上传功能示例【支持实时预览】
2019/05/08 PHP
线路分流自动跳转代码;希望对大家有用!
2006/12/02 Javascript
你需要知道的JavsScript可以做什么?
2007/06/29 Javascript
JSON无限折叠菜单编写实例
2013/12/16 Javascript
jfreechart插件将数据展示成饼状图、柱状图和折线图
2015/04/13 Javascript
浅谈js中StringBuffer类的实现方法及使用
2016/09/02 Javascript
使用UrlConnection实现后台模拟http请求的简单实例
2017/01/04 Javascript
JS中原始值和引用值的储存方式示例详解
2018/03/23 Javascript
Vue实现表格批量审核功能实例代码
2019/05/28 Javascript
浅谈Vue的响应式原理
2019/05/30 Javascript
python实现批量修改文件名代码
2017/09/10 Python
Python与人工神经网络:使用神经网络识别手写图像介绍
2017/12/19 Python
python+opencv实现动态物体追踪
2018/01/09 Python
Pandas DataFrame 取一行数据会得到Series的方法
2018/11/10 Python
Appium+Python自动化测试之运行App程序示例
2019/01/23 Python
python实现QQ批量登录功能
2019/06/19 Python
Python实现简单的列表冒泡排序和反转列表操作示例
2019/07/10 Python
Python3 列表,数组,矩阵的相互转换的方法示例
2019/08/05 Python
python中property和setter装饰器用法
2019/12/19 Python
Python3连接Mysql8.0遇到的问题及处理步骤
2020/02/17 Python
Django用户登录与注册系统的实现示例
2020/06/03 Python
浅谈keras使用预训练模型vgg16分类,损失和准确度不变
2020/07/02 Python
HTML5适合的情人节礼物有纪念日期功能
2021/01/25 HTML / CSS
屈臣氏俄罗斯在线商店:Watsons俄罗斯
2020/08/03 全球购物
学校后勤人员职责
2013/12/27 职场文书
迅雷Cued工作心得体会
2014/01/27 职场文书
大学毕业感言一句话
2014/02/06 职场文书
财务部总监岗位职责
2014/03/12 职场文书
工商局局长个人对照检查材料思想汇报
2014/09/23 职场文书
诚信承诺书
2015/01/19 职场文书
《社戏》教学反思
2016/02/22 职场文书
Python基础之条件语句详解
2021/06/16 Python