Maison > interface Web > js tutoriel > Pourquoi est-ce que je reçois une erreur « regeneratorRuntime n'est pas défini » dans Babel 6 et comment puis-je la corriger ?

Pourquoi est-ce que je reçois une erreur « regeneratorRuntime n'est pas défini » dans Babel 6 et comment puis-je la corriger ?

DDD
Libérer: 2024-12-08 21:47:14
original
651 Les gens l'ont consulté

Why am I getting a

Erreur "regeneratorRuntime n'est pas défini" dans Babel 6

Lors de l'utilisation de Babel 6, vous pouvez rencontrer "regeneratorRuntime n'est pas défini" défini " erreur, en particulier lors de l'utilisation de la syntaxe async/wait. Cette erreur indique qu'il vous manque une dépendance ou une configuration requise lors de la configuration de Babel.

Pour résoudre ce problème, vous devez installer et configurer babel-polyfill. La bibliothèque fournit un ensemble de polyfills qui peuvent être utilisés pour prendre en charge les fonctionnalités JavaScript modernes, telles que async/await, dans des environnements qui ne prennent pas en charge les fonctionnalités prises en charge de manière native.

Installer les dépendances

Tout d'abord, installez babel-polyfill et les autres dépendances Babel requises à l'aide de npm :

npm i -D babel-core babel-polyfill babel-preset-es2015 babel-preset-stage-0 babel-loader
Copier après la connexion

Mettre à jour package.json

Mettez à jour votre package.json fichier, ajoutez babel-polyfill à devDependencies :

"devDependencies": {
  "babel-core": "^6.0.20",
  "babel-polyfill": "^6.0.16",
  "babel-preset-es2015": "^6.0.15",
  "babel-preset-stage-0": "^6.0.15"
}
Copier après la connexion

Mettre à jour .babelrc

Vous n'avez pas besoin d'apporter de modifications au fichier .babelrc. Cela devrait ressembler à ceci :

{
  "presets": [ "es2015", "stage-0" ]
}
Copier après la connexion

Mettez à jour vos fichiers JavaScript

Assurez-vous que vous utilisez la syntaxe async/await. Par exemple :

"use strict";

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

function bar() {
  return "bar";
}
Copier après la connexion

Dans votre fichier de démarrage

Dans votre fichier de démarrage, assurez-vous d'enregistrer Babel et babel-polyfill :

require("babel-core/register");
require("babel-polyfill");
Copier après la connexion

Pour les utilisateurs utilisant webpack, veuillez suivre la suggestion de @Cemen et ajouter babel-polyfill Définissez la première valeur du tableau d'entrée dans le fichier de configuration de votre webpack :

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

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

  module: {
    loaders: [
      { test: /\.jsx?$/, loader: 'babel', }
    ]
  }
};
Copier après la connexion

Pour les tests Mocha, utilisez ce qui suit :

mocha --compilers js:babel-core/register --require babel-polyfill
Copier après la connexion

En suivant ces étapes, vous devriez pouvoir résoudre " regeneratorRuntime n'est pas défini" et utilise 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 de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal