解决iview打包时UglifyJs报错的问题


Posted in Javascript onMarch 07, 2018

使用npm run dev时运行是ok的,但是npm run build打包时iview报错,

如下:

解决iview打包时UglifyJs报错的问题

原因是iview中使用了es6语法,然而uglifyJs是不支持的,打开我们的build/webpack.prod.conf.js文件,可以看到

// UglifyJs do not support ES6+, you can also use babel-minify for better treeshaking: https://github.com/babel/minify
new webpack.optimize.UglifyJsPlugin({
compress: {
warnings: false
},
sourceMap: config.build.productionSourceMap,
parallel: true
}),

已经提示了uglifyJs不支持es6.

解决方案:

在webpack.base.conf.js中,我们先在js编译的时候添加如下:

{
test: /\.js$/,
loader: 'babel-loader',
include: [resolve('src'),
resolve('test'),resolve('/node_modules/iview/src'),resolve('/node_modules/iview/packages')]
},

先让iview的es6语法经过babel来转换,然后在build/webpack.prod.conf.js中,注释掉原来的uglifyJs,引入外部的uglifyJs对js进行压缩混淆,代码如下:

// UglifyJs do not support ES6+, you can also use babel-minify for better treeshaking: https://github.com/babel/minify
// new webpack.optimize.UglifyJsPlugin({
// compress: {
// warnings: false
// },
// sourceMap: config.build.productionSourceMap,
// parallel: true
// }),
new UglifyJsPlugin({
// 使用外部引入的新版本的js压缩工具
parallel: true,
uglifyOptions: {
ie8: false,
ecma: 6,
warnings: false,
mangle: true,
// debug false
output: {
comments: false,
beautify: false,
// debug true
},
compress: {
// 在UglifyJs删除没有用到的代码时不输出警告
warnings: false,
// 删除所有的 `console` 语句
// 还可以兼容ie浏览器
drop_console: 
true,
// 内嵌定义了但是只用到一次的变量
collapse_vars: 
true,
// 提取出出现多次但是没有定义成变量去引用的静态值
reduce_vars: 
true,
}
}
}),

当然我们要先引入外部插件:

const UglifyJsPlugin =
require('uglifyjs-webpack-plugin');

如此便可解决。

以上这篇解决iview打包时UglifyJs报错的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Javascript中的常见排序算法
Mar 27 Javascript
关于COOKIE个数与大小的问题
Jan 17 Javascript
jquery中append()与appendto()用法分析
Nov 14 Javascript
招聘网站基于jQuery实现自动刷新简历
May 10 Javascript
对于jQuery性能的一些优化建议
Aug 13 Javascript
js判断数组key是否存在(不用循环)的简单实例
Aug 03 Javascript
easyui messager alert 三秒后自动关闭提示的实例
Nov 07 Javascript
vue.js编译时给生成的文件增加版本号
Sep 17 Javascript
vue 父组件给子组件传值子组件给父组件传值的实例代码
Apr 15 Javascript
基于Vue SEO的四种方案(小结)
Jul 01 Javascript
vue商城中商品“筛选器”功能的实现代码
Jul 01 Javascript
react合成事件与原生事件的相关理解
May 13 Javascript
React Native使用fetch实现图片上传的示例代码
Mar 07 #Javascript
使用vue制作探探滑动堆叠组件的实例代码
Mar 07 #Javascript
基于vue-cli 打包时抽离项目相关配置文件详解
Mar 07 #Javascript
关于Vue的路由权限管理的示例代码
Mar 06 #Javascript
vue.js在标签属性中插入变量参数的方法
Mar 06 #Javascript
基于Vue中点击组件外关闭组件的实现方法
Mar 06 #Javascript
解决vue build打包之后首页白屏的问题
Mar 06 #Javascript
You might like
PHP4之COOKIE支持详解
2006/10/09 PHP
用header 发送cookie的php代码
2007/03/16 PHP
php模板中出现空行解决方法
2011/03/08 PHP
php数组函数序列之next() - 移动数组内部指针到下一个元素的位置,并返回该元素值
2011/10/31 PHP
phpcms手机内容页面添加上一篇和下一篇
2015/06/05 PHP
php编程每天必学之表单验证
2016/03/01 PHP
php smtp实现发送邮件功能
2017/06/22 PHP
Laravel学习教程之从入口到输出过程详解
2017/08/27 PHP
实例说明js脚本语言和php脚本语言的区别
2019/04/04 PHP
javascript Onunload与Onbeforeunload使用小结
2009/12/31 Javascript
jQuery getJSON 处理json数据的代码
2010/07/26 Javascript
js动态移动滚动条至底部示例代码
2014/04/24 Javascript
javascript 用函数实现继承详解
2016/05/28 Javascript
利用prop-types第三方库对组件的props中的变量进行类型检测
2017/05/02 Javascript
angular中使用Socket.io实例代码
2017/06/03 Javascript
JavaScript继承定义与用法实践分析
2018/05/28 Javascript
详解keep-alive + vuex 让缓存的页面灵活起来
2019/04/19 Javascript
js实现贪吃蛇小游戏(加墙)
2020/07/31 Javascript
[06:09]辉夜杯主赛事开幕式
2015/12/25 DOTA
python3使用urllib模块制作网络爬虫
2016/04/08 Python
Python运算符重载详解及实例代码
2017/03/07 Python
python用BeautifulSoup库简单爬虫实例分析
2018/07/30 Python
Python爬虫 bilibili视频弹幕提取过程详解
2019/07/31 Python
基于Django框架的权限组件rbac实例讲解
2019/08/31 Python
Python 类的私有属性和私有方法实例分析
2019/09/29 Python
Html5页面点击遮罩层背景关闭遮罩层
2020/11/30 HTML / CSS
北大研究生linux应用求职信
2013/10/29 职场文书
数控专业应届生求职信
2013/11/27 职场文书
上班玩游戏检讨书
2014/02/07 职场文书
大学社团计划书
2014/05/01 职场文书
高中班级口号
2014/06/09 职场文书
高中生打架检讨书1000字
2015/02/17 职场文书
教师求职简历自我评价
2015/03/10 职场文书
2015年话务员工作总结
2015/04/29 职场文书
导游词之南京中山陵
2019/11/27 职场文书
Python Pygame实战在打砖块游戏的实现
2022/03/17 Python