解决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 相关文章推荐
使用jquery动态加载javascript以减少服务器压力
Oct 29 Javascript
如何使用jQuery来处理图片坏链具体实现步骤
May 02 Javascript
jquery ajax的success回调函数中实现按钮置灰倒计时
Nov 19 Javascript
javascript中声明函数的方法及调用函数的返回值
Jul 22 Javascript
a标签的href与onclick事件的区别详解
Nov 12 Javascript
jQuery中remove()方法用法实例
Dec 25 Javascript
JS实现图片垂直居中显示小结
Dec 13 Javascript
Angular.Js中过滤器filter与自定义过滤器filter实例详解
May 08 Javascript
jQuery实现鼠标响应式淘宝动画效果示例
Feb 13 jQuery
vue中的计算属性实例详解
Sep 19 Javascript
使用Vuex解决Vue中的身份验证问题
Sep 28 Javascript
解决IOS端微信H5页面软键盘弹起后页面下方留白的问题
Jun 05 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正则
2006/07/07 PHP
用Apache反向代理设置对外的WWW和文件服务器
2006/10/09 PHP
php cache类代码(php数据缓存类)
2010/04/15 PHP
PHP基于DOM创建xml文档的方法示例
2017/02/08 PHP
在laravel中实现将查询的对象转换为多维数组的函数
2019/10/21 PHP
用apply让javascript函数仅执行一次的代码
2010/06/27 Javascript
jQuery实现动态表单验证时文本框抖动效果完整实例
2015/08/21 Javascript
jQuery实现图片预加载效果
2015/11/27 Javascript
JS实现环形进度条(从0到100%)效果
2016/07/05 Javascript
BootstrapValidator实现注册校验和登录错误提示效果
2017/03/10 Javascript
JavaScript数据类型和变量_动力节点Java学院整理
2017/06/26 Javascript
arcgis for js栅格图层叠加(Raster Layer)问题
2017/11/22 Javascript
vue-router配合ElementUI实现导航的实例
2018/02/11 Javascript
优雅地使用loading(推荐)
2019/04/20 Javascript
Javascript如何实现双指控制图片功能
2020/02/25 Javascript
js Math数学简单使用操作示例
2020/03/13 Javascript
python进阶教程之模块(module)介绍
2014/08/30 Python
python实现的简单抽奖系统实例
2015/05/22 Python
Python中的字典与成员运算符初步探究
2015/10/13 Python
python魔法方法-自定义序列详解
2016/07/21 Python
python利用正则表达式提取字符串
2016/12/08 Python
Python正则简单实例分析
2017/03/21 Python
使用matplotlib画散点图的方法
2018/05/25 Python
python计算日期之间的放假日期
2018/06/05 Python
Django如何开发简单的查询接口详解
2019/05/17 Python
python 将字符串完成特定的向右移动方法
2019/06/11 Python
python实现本地批量ping多个IP的方法示例
2019/08/07 Python
Python中pyecharts安装及安装失败的解决方法
2020/02/18 Python
GAP欧盟网上商店:GAP EU
2016/09/13 全球购物
Bergfreunde丹麦:登山装备网上零售商
2017/02/26 全球购物
印度网上药店:1mg
2017/10/13 全球购物
线程的基本概念、线程的基本状态以及状态之间的关系
2012/10/26 面试题
物流管理专业大学生自荐信
2013/10/04 职场文书
保护环境倡议书500字
2014/05/19 职场文书
超级实用的公文标题大全!
2019/07/19 职场文书
星际争霸:毕姥爷vs解冻01
2022/04/01 星际争霸