发布于 4年前

解决react dva打包报错Unexpected token: operator

问题描述

近期在工作中,打包react项目时控制台报了以下错误:

ERROR in index.js from UglifyJs
Unexpected token: operator (>) [./~/query-string/index.js:8,0]

问题解决

我先初步推断了一下问题:
Unexpected token: operator (>) 表示不识别 > 符号
/query-string/index.js 表示这个文件里面的第8行第0列出现的问题

我就找这个文件,发现是node_modules目录下的,安装的query-string插件,就打开看了一下第8行的内容。

return (key, value, index) => {
   ...
}

发现是箭头函数的 > 没有被识别,箭头函数是ES6的语法,由此可以发现是babel的问题。
该项目用的是roadhog配置的babel,我就去查看了一下roadhog的配置,想把node_modules/query-string/index.js加入babel编译里面,结果在其官网看到了以下内容:

把源码放到 src 目录下,因为非 src 目录下的文件不会走 babel 编译。

roadhog默认只编译src目标录下的,所以我就去找query-string的版本,发现5.0.1的版本是用的es5写的,于是把它的版本降低,经过测试后解决了这个问题。

©2020 edoou.com   京ICP备16001874号-3