node.js - 使用 async/await 的 create-react-app 和 JavaScript 依赖项无法编译

标签 node.js reactjs webpack

重现步骤:

npm install -g create-react-app
create-react-app demo-app
cd demo-app
npm install --save instascan
# add `import Instascan from 'instascan'` to index.js
npm start

错误信息:

Failed to compile.

Error in ./~/instascan/src/camera.js
Module parse failed: /Users/rd/code/instascan-react/node_modules/instascan/src/camera.js Unexpected token (13:8)
You may need an appropriate loader to handle this file type.
SyntaxError: Unexpected token (13:8)
 @ ./~/instascan/index.js 6:10-33

Error in ./~/instascan/src/scanner.js
Module parse failed: /Users/rd/code/instascan-react/node_modules/instascan/src/scanner.js Unexpected token (208:8)
You may need an appropriate loader to handle this file type.
SyntaxError: Unexpected token (208:8)
 @ ./~/instascan/index.js 5:11-35

进一步检查表明,在 camera.js:13 和 scanner.js:208 处发现了对 async 的调用。 create-react-app 文档说支持 async/await,但也许这没有为依赖项启用?

我不确定接下来要尝试什么。非常感谢此处的任何指导。

最佳答案

这按预期工作。

Create React App 只会将您的代码编译为 ES5(浏览器和压缩器可以理解),但不会编译您的依赖项的代码。否则它会慢得多(并且它还会破坏一些库)。

您可以向发布未编译代码的库提出问题,并要求他们在发布到 npm 之前将其编译为 ES5。这通常是推荐的做法,大多数支持浏览器使用的库都这样做。

关于node.js - 使用 async/await 的 create-react-app 和 JavaScript 依赖项无法编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43417654/

相关文章:

reactjs - Storybook 全局 Scss 变量

mysql - 查询运行成功但未找到记录时的响应代码

javascript - Node js中的Promise中间件回调函数如何使用多个呢?

angular - 与 React/Angular 的跨浏览器兼容性

javascript - 如何使用 React Native 在 if 条件内处理 Prop 导航

javascript - 获取预编译源代码的 Karma 代码覆盖率

javascript - 没有带有 ExtractTextPlugin 的 js 源映射

node.js - docker webpack编译文件运行时丢失

node.js - BotFramework WebChat 未接收消息。

javascript - 动态打开和关闭 antd/react 折叠组件