Babel v6-transform-es2015类插件在松散模式下抛出SyntaxError:异步/等待的意外标识符

Babel v6 - transform-es2015-classes plugin in loose mode throws SyntaxError: Unexpected identifier for async/await

本文关键字:异步 SyntaxError 等待 标识符 意外 插件 v6-transform-es2015 模式 Babel      更新时间:2023-09-26

我已经更新到最新的babel v6。然而,我注意到使用带有松散模式的transform-es2015-classes插件(https://github.com/bkonkle/babel-preset-es2015-loose/blob/master/index.js#L8)中断async/await函数。例如:

function _asyncFunc (value) {
  return new Promise((resolve) => {
    setTimeout(() => resolve(value), 10);
  });
}
class TestActions {
  async asyncAction(returnValue) {
    const result = await _asyncFunc(returnValue); // exception here
    return result;
  }
}

断线与断线:

var result = await _asyncFunc(returnValue); ^^^^^^^^^^ SyntaxError: Unexpected identifier

Babelrc看起来如下(我也通过在入口点import 'babel-runtime/regenerator/runtime';中导入它来使用再生器运行时):

{
  "presets": [
    "es2015-loose",
    "react",
    "stage-0"
  ]
}

我需要使用松散模式,因为这个巴别塔错误-https://phabricator.babeljs.io/T3041

有解决办法吗?

这是Babel v6中的一个错误,在6.3.15中已经修复,只需更新您的包https://github.com/babel/babel/pull/3135