Maison >interface Web >js tutoriel >Pourquoi « regeneratorRuntime n'est pas défini » dans Babel 6 lors de l'utilisation de générateurs asynchrones, et comment puis-je y remédier ?

Pourquoi « regeneratorRuntime n'est pas défini » dans Babel 6 lors de l'utilisation de générateurs asynchrones, et comment puis-je y remédier ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-29 08:40:11349parcourir

Why is

Générateurs asynchrones manquants dans Babel 6

Dans Babel 6, vous pouvez rencontrer l'erreur "regeneratorRuntime n'est pas défini" lors de la tentative d'implémentation asynchrone générateurs. Cela se produit car le runtime du régénérateur, qui constitue la base fondamentale des fonctions asynchrones, doit être inclus aux côtés de Babel.

Solution : Incluez Babel-polyfill

Pour résoudre ce problème erreur, vous devrez installer babel-polyfill, qui prend en charge les applications asynchrones. fonctions.

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

Configuration mise à jour

Après avoir installé babel-polyfill, mettez à jour la section "devDependencies" de votre package.json avec le nouveau package.

package.json

"devDependencies": {
  "babel-core": "^6.0.20",
  "babel-polyfill": "^6.0.16",
  "babel-preset-es2015": "^6.0.15",
  "babel-preset-stage-0": "^6.0.15"
}

Incorporation du Polyfill

Dans votre fichier de démarrage, exigez à la fois babel- core/register et babel-polyfill.

démarrage file

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

Pour les utilisateurs du webpack, n'oubliez pas de placer 'babel-polyfill' comme première entrée de votre tableau d'entrées.

configuration du webpack

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

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

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

Dans le cas de tests utilisant Mocha, utilisez la commande suivante :

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

Avec Ces ajustements, les générateurs asynchrones seront désormais accessibles dans votre environnement Babel 6, vous permettant d'écrire et d'utiliser de manière transparente la syntaxe async/await.

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