npm运行构建uglifyjs时出现语法错误:意外的令牌:运算符(>)。

3

我正在尝试使用以下命令优化 Create-react-app 的生产环境:

npm run build

但是它给出了以下错误提示:

static/js/main.9c091e05.js from UglifyJs
SyntaxError: Unexpected token: operator (>) [./~/http-build-query/index.js:16,0]

这可能是由于模块http-build-query引起的,但该模块对我的应用程序非常必要。

我也尝试了yarn build,但仍然出现相同的错误。

编辑

通过Google搜索,我刚刚得知ES6语法不受npm run build支持。那么问题来了,如何使用npm run build构建ES6语法?


一个简单的复制粘贴就可以将内容从一个地方复制到另一个地方。 - LMokrane
请检查问题中的编辑 - Noman Ali
/http-build-query/index.js 的第16行是什么? - Pistachio
第16行:var query = Object.keys(queryData).map(k => { - Noman Ali
也许这个链接可以帮到你 - https://github.com/facebookincubator/create-react-app/issues/984 - 0_0
显示剩余4条评论
1个回答

2
这是发生的原因是因为你的 node_modules 文件夹中的 ES6 代码 没有被处理create-react-app 假设它们已经自己完成了这个过程(他们应该这样做)。

选项 1

停止使用该包,并找到更好的替代品。

选项 2

将包中的代码复制到你自己的源文件中,以便 Babel 可以访问它。

选项 3

弹出 create-react-app 并自定义 webpack 配置,包括对 node_modules 文件夹的测试(可能会大大降低构建时间)。

选项 4

覆盖来自 create-react-app 的 webpack 配置,以实现 选项 3 而无需弹出。请注意,这很复杂,你应该选择 选项 1选项 2

覆盖示例可以在此处找到:https://daveceddia.com/customize-create-react-app-webpack-without-ejecting/

我已经将那个ES5模块(http-build-query)转换成了ES2015,它成功运行。谢谢啊伙计。 - Noman Ali
这是救命恩物!真正的宝石!我选择了第二个选项。像魔法一样工作!并且提供的原因/解释和指向 Github 问题的链接真的很有帮助!谢谢! :) - Mon

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接