Регенератор Babel 6Виконання не визначено
Я намагаюся використовувати async, очікувати з нуля на Babel 6, але я отримую regeneratorRuntime не визначено.
Файл .babelrc
{
"presets": [ "es2015", "stage-0" ]
}
файл package.json
"devDependencies": {
"babel-core": "^6.0.20",
"babel-preset-es2015": "^6.0.15",
"babel-preset-stage-0": "^6.0.15"
}
файл .js
"use strict";
async function foo() {
await bar();
}
function bar() { }
exports.default = foo;
Використання його в звичайному режимі без асинхронізації/очікування працює просто чудово. Є ідеї, що я роблю не так?
569
3
Потрібен
babel-polyfill
. Ви також повинні встановити його для того, щоб запрацювала функція асинхронізації/очікування.package.json
.babelrc
.js з async/await (приклад коду)
У файлі запуску
Якщо ви використовуєте webpack, вам потрібно помістити його як перше значення масиву
entry
у вашому файлі конфігурації webpack (зазвичайwebpack.config.js
), відповідно до коментаря @Cemen:Якщо ви хочете запускати тести за допомогою babel, використовуйте його:
Крім polyfill я використовую babel-plugin-transform-runtime. Плагін описується як:
Він також включає підтримку асинхронізації/очікування разом з іншими вбудованими функціями ES 6.
У
.babelrc
додайте плагін часу виконанняКрім того, якщо вам не потрібні всі модулі, які надає
babel-polyfill
, ви можете просто вказатиbabel-regenerator-runtime
в конфігурації вашого webpack:При використанні webpack-dev-server з HMR це значно зменшує кількість файлів, які потрібно компілювати при кожній збірці. Цей модуль встановлюється як частина
babel-polyfill
, тому якщо у вас вже є цей модуль, то все гаразд, інакше ви можете встановити його окремо за допомогоюnpm i -D babel-regenerator-runtime
.