Maison >interface Web >js tutoriel >Pourquoi est-ce que j'obtiens « regeneratorRuntime n'est pas défini » lorsque j'utilise Async/Await avec Babel 6 ?

Pourquoi est-ce que j'obtiens « regeneratorRuntime n'est pas défini » lorsque j'utilise Async/Await avec Babel 6 ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-08 17:38:12137parcourir

Why Am I Getting

"Babel 6 regeneratorRuntime n'est pas défini" expliqué

Lors de l'implémentation de async/await dans Babel 6, l'erreur "regeneratorRuntime n'est pas défini" se pose couramment. Pour résoudre ce problème, il faut en outre installer et inclure babel-polyfill.

Installation des dépendances Babel

Pour utiliser async/await, installez ces dépendances :

npm i -D babel-core babel-polyfill babel-preset-es2015 babel-preset-stage-0 babel-loader

Mise à jour package.json

Ajoutez ce qui suit à "devDependencies" :

"babel-polyfill": "^6.0.16"

Maintenir .babelrc

Conservez les paramètres tels quels :

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

Configuration Async/await**

Activez async/await dans votre code :

"use strict";

export default async function foo() {
  var s = await bar();
  console.log(s);
}

function bar() {
  return "bar";
}

Chargement des packages requis

Dans votre fichier de démarrage , inclure :

require("babel-core/register");
require("babel-polyfill");

Webpack Configuration

Si vous utilisez webpack, assurez-vous que babel-polyfill est la première entrée :

module.exports = {
  entry: ['babel-polyfill', './test.js'],

  output: {
    filename: 'bundle.js'       
  },

  module: {
    loaders: [
      { test: /\.jsx?$/, loader: 'babel', }
    ]
  }
};

Test avec Babel

Exécutez des tests avec Babel utilise :

mocha --compilers js:babel-core/register --require babel-polyfill

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn