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
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" }
Mettre à jour .babelrc
Vous n'avez pas besoin d'apporter de modifications au fichier .babelrc. Cela devrait ressembler à ceci :
{ "presets": [ "es2015", "stage-0" ] }
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"; }
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");
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', } ] } };
Pour les tests Mocha, utilisez ce qui suit :
mocha --compilers js:babel-core/register --require babel-polyfill
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!