Babel v6 - плагин transform-es2015-classes в свободном режиме выдает SyntaxError: неожиданный идентификатор для async/await

Я обновился до последней версии Babel v6. Однако я заметил, что с помощью transform-es2015-classes Плагин со свободным режимом на ( https://github.com/bkonkle/babel-preset-es2015-loose/blob/master/index.js#L8) прерывает асинхронные / ожидающие функции. Например:

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"
  ]
}

Мне нужно использовать свободный режим из-за этой ошибки Babel - https://phabricator.babeljs.io/T3041

Есть обходные пути?

1 ответ

Решение

Это была ошибка в Babel v6, и она уже была исправлена ​​в 6.3.15 просто обновите ваши пакеты, пр - https://github.com/babel/babel/pull/3135

Другие вопросы по тегам