解决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 相关文章推荐
JS的IE和Firefox兼容性集锦
Dec 11 Javascript
JavaScript 对任意元素,自定义右键菜单的实现方法
May 08 Javascript
javascript:window.open弹出窗口的位置问题
Mar 18 Javascript
Javascript控制input输入时间格式的方法
Jan 28 Javascript
JavaScript实现鼠标滑过图片变换效果的方法
Apr 16 Javascript
基于javascript实现的快速排序
Dec 02 Javascript
详解vue-router基本使用
Apr 18 Javascript
jQuery中hover方法搭配css的hover选择器,实现选中元素突出显示方法
May 08 jQuery
基于jQuery Ajax实现下拉框无刷新联动
Dec 06 jQuery
Vue-Router2.X多种路由实现方式总结
Feb 09 Javascript
Vue实现todolist删除功能
Jun 26 Javascript
详解Vue的常用指令v-if, v-for, v-show,v-else, v-bind, v-on
Oct 12 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
PHP 创建标签云函数代码
2010/05/26 PHP
Mysql中分页查询的两个解决方法比较
2013/05/02 PHP
Laravel 中获取上一篇和下一篇数据
2015/07/27 PHP
PHP重定向与伪静态区别
2017/02/19 PHP
JavaScript中两个感叹号的作用说明
2011/12/28 Javascript
javascript计算星座属相(十二生肖属相)示例代码
2014/01/09 Javascript
使用jquery.upload.js实现异步上传示例代码
2014/07/29 Javascript
JS来动态的修改url实现对url的增删查改
2014/09/05 Javascript
Extjs grid panel自带滚动条失效的解决方法
2014/09/11 Javascript
Javascript表单验证要注意的事项
2014/09/29 Javascript
jQuery实现径向动画菜单效果
2015/07/17 Javascript
用JavaScript实现PHP的urlencode与urldecode函数
2015/08/13 Javascript
浅析Bootstrap表格的使用
2016/06/23 Javascript
内容滑动切换效果jquery.hwSlide.js插件封装
2016/07/07 Javascript
使用BootStrapValidator完成前端输入验证
2016/09/28 Javascript
VUE长按事件需求详解
2017/10/18 Javascript
NodeJS爬虫实例之糗事百科
2017/12/14 NodeJs
json对象及数组键值的深度大小写转换问题详解
2018/03/30 Javascript
vue实现动态添加数据滚动条自动滚动到底部的示例代码
2018/07/06 Javascript
Vue-router 中hash模式和history模式的区别
2018/07/24 Javascript
vue 登录滑动验证实现代码
2018/08/24 Javascript
浅谈Vue render函数在ElementUi中的应用
2018/09/06 Javascript
jQuery轻量级表单模型验证插件
2018/10/15 jQuery
封装Vue Element的table表格组件的示例详解
2020/08/19 Javascript
[44:01]2018DOTA2亚洲邀请赛3月30日 小组赛B组 EG VS paiN
2018/03/31 DOTA
简单掌握Python中glob模块查找文件路径的用法
2016/07/05 Python
Django返回json数据用法示例
2016/09/18 Python
numpy.random.seed()的使用实例解析
2018/02/03 Python
英国领先的酒类网上商城:TheDrinkShop
2017/03/16 全球购物
美国最大的存储市场:SpareFoot
2018/07/23 全球购物
Book Depository美国:全球领先的专业网上书店之一
2019/08/14 全球购物
澳大利亚手袋、珠宝和在线时尚精品店:The Way
2019/12/21 全球购物
财政局长自荐信范文
2013/12/22 职场文书
销售求职信范文
2014/05/26 职场文书
商业街策划方案
2014/05/31 职场文书
个人存款证明书
2014/10/18 职场文书