重现步骤:
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/