解决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写的,于是把它的版本降低,经过测试后解决了这个问题。