Babel 6 regeneratorRuntime no está definido
Estoy intentando usar async, await desde cero en Babel 6, pero me sale que regeneratorRuntime no está definido.
Archivo .babelrc
{
"presets": [ "es2015", "stage-0" ]
}
archivo package.json
"devDependencies": {
"babel-core": "^6.0.20",
"babel-preset-es2015": "^6.0.15",
"babel-preset-stage-0": "^6.0.15"
}
Archivo .js
"use strict";
async function foo() {
await bar();
}
function bar() { }
exports.default = foo;
Usándolo normalmente sin el async/await funciona bien. ¿Alguna idea de lo que estoy haciendo mal?
569
3
Se necesita
babel-polyfill
. También debes instalarlo para que funcione async/await.paquete.json
.babelrc
.js con async/await (código de ejemplo)
En el archivo de inicio
Si estás usando webpack tienes que ponerlo como el primer valor de tu array
entry
en tu archivo de configuración de webpack (normalmentewebpack.config.js
), según el comentario de @Cemen:Si quieres ejecutar pruebas con babel entonces usa:
Además de polyfill, utilizo babel-plugin-transform-runtime. El plugin se describe como:
También incluye soporte para async/await junto con otros built-ins de ES 6.
En
.babelrc
, añade el plugin de tiempo de ejecuciónAlternativamente, si no necesitas todos los módulos que proporciona
babel-polyfill
, puedes simplemente especificarbabel-regenerator-runtime
en tu configuración de webpack:Cuando se utiliza webpack-dev-server con HMR, hacer esto reduce el número de archivos que tiene que compilar en cada construcción por un montón. Este módulo se instala como parte de
babel-polyfill
, así que si ya lo tienes, puedes instalarlo por separado connpm i -D babel-regenerator-runtime
.