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