Javascript babel 6异步/等待:意外令牌

Javascript babel 6异步/等待:意外令牌,javascript,babeljs,Javascript,Babeljs,我无法让异步/等待转换正常工作。 我错过了什么 我的.法律改革委员会: { "presets": [ "es2015", "stage-0" ] } My package.json(被剪断): 输出: babel src/server SyntaxError: src/server/index.js: Unexpected token (7:21) 5 | 6 | try { > 7 | let server = await server('localhost',

我无法让异步/等待转换正常工作。 我错过了什么

我的.法律改革委员会:

{
  "presets": [ "es2015", "stage-0" ]
}
My package.json(被剪断):

输出:

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 polyfill,但它是我唯一使用的

正如Gothdo所说:
await
关键字必须在函数范围内。此外,此函数定义必须具有
async
关键字


这意味着您不能将
await
关键字放在顶级作用域中。

看起来async/await仅在
babel-preset-stage-3中可用


您可以使用
转换异步到模块方法
插件自己编译它们,这允许您将它们编译为需要ES6生成器的bluebird co例程(可在node4中使用)

或者,如果您需要将其编译回ES5以便与浏览器兼容,您可以使用
transform async to generator
和facebook的
regenerator

我在这里写了关于如何设置babel配置的内容,请使用

装置 用法 将以下行添加到
.babelrc
文件中:

{
  "plugins": ["transform-async-to-generator"]
}

建议升级到Babel 7并使用Babel env,而不是Stage(请参见此处:)

有一个命令可用于相应升级:

npx babel-upgrade

我已经需要babel polyfill软件包,它仍然错误,您的
wait
行是否在功能范围内?我不确定,但它似乎不在标有
async
@legomind的函数之外工作,但它没有列在您的package.json中(您至少发布了)
“babel polyfill”:“^6.0.16”,
您好@legomind,你有没有设法让它工作起来?只要你在你的入口点导入
babel polyfill
,我就可以使用带有stage-0和es2015预设的babel。正如BrunoLM所说,确保已安装模块;)您的配置可能将加载程序限制为特定文件夹,如“客户端”。检查装载机的包含选项。对不起,不应该包含阶段3吗?
{
  "plugins": ["transform-async-to-generator"]
}
npx babel-upgrade