babel 6 async/await:意外的令牌
babel 6 async / await: Unexpected token
我在异步/等待转换工作时遇到问题。我错过了什么?
我的.babelrc:
{
"presets": [ "es2015", "stage-0" ]
}
我的包.json(剪切):
{
"babel-core": "^6.1.2",
"babel-plugin-transform-runtime": "^6.1.2",
"babel-preset-es2015": "^6.1.2",
"babel-preset-stage-0": "^6.1.2"
}
输出:
babel src/server
SyntaxError: src/server/index.js: Unexpected token (7:21)
5 |
6 | try {
> 7 | let server = await server('localhost', env.NODE_PORT || 3000)
| ^
8 | console.log(`Server started on ${server.info.uri}`)
9 | } catch (err) {
10 | console.error('Error starting server: ', err)
根据这篇文章,你需要有babel-polyfill
Babel 6 regeneratorRuntime没有用async/await 定义
希望它能帮助你:)
编辑:
它不一定是巴氏合金填充物,但它是我唯一使用的。
正如Gothdo所说:await
关键字必须在函数范围内。此外,此函数定义必须具有async
关键字。
这意味着您不能在顶级作用域上使用await
关键字。
看起来async/await仅在babel-preset-stage-3
中可用
http://babeljs.io/docs/plugins/preset-stage-3/
您可以使用transform-async-to-module-method
插件自己编译它们,这允许您将它们编译为需要ES6生成器的bluebird协同例程(在node4中可用)。
或者,如果你需要将其编译回ES5,以便与浏览器兼容,你可以使用transform-async-to-generator
和facebook的regenerator
。
我在这里写了关于如何设置babel配置的文章http://madole.xyz/async-await-es7/
使用异步到生成器转换。
安装
$ npm install babel-plugin-transform-async-to-generator
用法
在.babelrc
文件中添加以下行:
{
"plugins": ["transform-async-to-generator"]
}
建议升级到Babel 7,并使用Babel env而不是stages(请参阅此处:https://github.com/babel/babel-upgrade)。
有一个命令可以用来相应地升级:
npx babel-upgrade
相关文章:
- React JS:未捕获(在承诺中)语法错误:在位置 0 的 JSON 中意外<令牌
- jQuery$.getJSON抛出意外令牌
- 为什么我在下面的..of循环中得到意外令牌
- 组件中的ReactJS意外令牌
- AngularJS $http GET 请求到本地 JSON 文件返回语法错误:意外令牌]
- 巴别塔,意外令牌 (15:33) ::.
- Sencha 2.0 和 Codeigniter RESTful API 生成未捕获的语法错误:意外令牌:
- 在事件上使用 jquery 时出现意外令牌
- JSON 中位置 4 处的意外令牌<
- 意外令牌 ) 在我的代码中
- Electron 和 Babel 6 异步/等待抛出意外令牌
- “JSON.parse(str)”返回“意外令牌c”,但str是一个字符串
- jQuery after() uncatch SyntaxError: 意外令牌 ILLEGAL
- 使用节点javascript的意外令牌ILLEGAL
- Javascript/JQuery-Chrome意外令牌
- Ajax 帖子未捕获语法错误:意外令牌非法
- angularjs-SyntaxError:请求从服务器返回时出现意外令牌
- jquery:使用ember的意外令牌C
- React本机项目中的意外令牌
- 解析有效的 JSON 得到“语法错误:意外令牌非法”