解决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 相关文章推荐
AJAX架构之Dojo篇
Apr 10 Javascript
网页图片延时加载的js代码
Apr 22 Javascript
js当一个变量为函数时 应该注意的一点细节小结
Dec 29 Javascript
JavaScript实现多种排序算法
Feb 24 Javascript
jquery实现跳到底部,回到顶部效果的简单实例(类似锚)
Jul 10 Javascript
AngularJS 单元测试(二)详解
Sep 21 Javascript
微信小程序 wx.uploadFile在安卓手机上面the same task is working问题解决
Dec 14 Javascript
简单实现JS计算器功能
Dec 21 Javascript
Vue2.5 结合 Element UI 之 Table 和 Pagination 组件实现分页功能
Jan 26 Javascript
jQuery与vue实现拖动验证码功能
Jan 30 jQuery
Vue下滚动到页面底部无限加载数据的示例代码
Apr 22 Javascript
JavaScript对象拷贝与赋值操作实例分析
Dec 10 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
上海永华YH-R296(华普R-96)12波段立体声收音机的分析和打理
2021/03/02 无线电
PHP4在WinXP下IIS和Apache2服务器上的安装实例
2006/10/09 PHP
遭遇php的in_array低性能问题
2013/09/17 PHP
php支付宝接口用法分析
2015/01/04 PHP
使用纯php代码实现页面伪静态的方法
2015/07/25 PHP
PHP通过调用新浪API生成t.cn格式短网址链接的方法详解
2019/02/20 PHP
php基于协程实现异步的方法分析
2019/07/17 PHP
向fckeditor编辑器插入指定代码的方法
2007/05/25 Javascript
动态的绑定事件addEventListener方法的使用
2014/01/24 Javascript
Bootstrap基本插件学习笔记之Popover提示框(19)
2016/12/08 Javascript
深入学习jQuery中的data()
2016/12/22 Javascript
JS实现select选中option触发事件操作示例
2018/07/13 Javascript
Vue中使用 setTimeout() setInterval()函数的问题
2018/09/13 Javascript
浅谈vue 锚点指令v-anchor的使用
2019/11/13 Javascript
微信小程序实现录制、试听、上传音频功能(带波形图)
2020/02/27 Javascript
python对字典进行排序实例
2014/09/25 Python
零基础写python爬虫之使用urllib2组件抓取网页内容
2014/11/04 Python
对TensorFlow的assign赋值用法详解
2018/07/30 Python
python 实现批量xls文件转csv文件的方法
2018/10/23 Python
python实现在遍历列表时,直接对dict元素增加字段的方法
2019/01/15 Python
解决pycharm每次打开项目都需要配置解释器和安装库问题
2020/02/26 Python
keras.utils.to_categorical和one hot格式解析
2020/07/02 Python
详解python实现可视化的MD5、sha256哈希加密小工具
2020/09/14 Python
CSS3 特效范例整理
2011/08/22 HTML / CSS
Grid 宫格常用布局的实现
2020/01/10 HTML / CSS
香港卓悦化妆品官网:BONJOUR
2017/09/21 全球购物
澳大利亚礼品篮网站:Macarthur Baskets
2019/10/14 全球购物
WEB控件及HTML服务端控件能否调用客户端方法?如果能,请解释如何调用?
2015/08/25 面试题
单位在职证明范本
2014/01/09 职场文书
《社戏》教学反思
2014/04/15 职场文书
外联部演讲稿
2014/05/24 职场文书
四风问题查摆剖析材料
2014/10/11 职场文书
2015教师个人工作总结范文
2015/03/31 职场文书
同乡会致辞
2015/07/30 职场文书
2016年习总书记讲话学习心得体会
2016/01/20 职场文书
Windows安装Anaconda3的方法及使用过程详解
2021/06/11 Python