解决vue-cli element-ui打包报错Unexpected token: punc (() [./~/element-ui/packages/row/src/row.js

1.问题描述

我用vue-cli写了项目,界面都是用element-ui写的,打包时报错:

ERROR in static/js/19.7a249ea6c2bf376ba720.js from UglifyJs
Unexpected token: punc (() [./~/element-ui/packages/row/src/row.js:24,0][static/js/19.7a249ea6c2bf376ba720.js:237,9]

2.问题理解

我理解了一下报错信息:

报错说有一个错误在打包后的文件中:static/js/19.7a249ea6c2bf376ba720.js
错误的原因是:Unexpected token: punc (() ,即:不能识别操作符("(()")
源文件出错地方是:/element-ui/packages/row/src/row.js24行第0
打包文件出错地方:static/js/19.7a249ea6c2bf376ba720.js
237行第0

于是我找到两个文件出错的代码一看,发现代码是一样的!

(() => {});中的(()=>{})是es6的语法。但是现在很多浏览器不完成支持es6语法,所以才需要在打包过程中转换成es5语法。

static/js/19.7a249ea6c2bf376ba720.js是打包的结果,这个文件是会放在浏览器运行的,如果浏览器不支持es6语法,那代码就会出错。

所以npm run build报出错误信息,也是合理的,如果你不理会这个报错信息,把代码拿取浏览器运行,就会出错。

3.解决问题


在自己项目中的 webpack.base.conf.js 找到了类似的地方,并加入配置

{
  test: /\.js$/,
  loader: 'babel-loader',
  include: [resolve('src'), resolve('test'),
resolve('/node_modules/element-ui/src'),resolve('/node_modules/element-ui/packages')//---添加这行
]
},

如果您的vue-cli项目或webpack项目也遇到类似的错误,可以试试这样解决。

感慨一下:

了解问题的本质比知道问题的答案重要
遇到问题需要抽丝剥茧地逐层分析



  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

QC班长

班长有话说:要是有瓶水喝就好了

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值