Asynchrone Generatoren fehlen in Babel 6
In Babel 6 kann beim Versuch, asynchrone Generatoren zu implementieren, der Fehler „regeneratorRuntime ist nicht definiert“ auftreten Generatoren. Dies liegt daran, dass die Regenerator-Laufzeit, die die Grundlage für asynchrone Funktionen bildet, neben Babel einbezogen werden muss.
Lösung: Babel-Polyfill einschließen
Um dieses Problem zu beheben Fehler, müssen Sie babel-polyfill installieren, das Unterstützung für asynchrone Funktionen bietet Funktionen.
npm i -D babel-core babel-polyfill babel-preset-es2015 babel-preset-stage-0 babel-loader
Aktualisierte Konfiguration
Aktualisieren Sie nach der Installation von babel-polyfill den Abschnitt „devDependencies“ Ihrer package.json mit dem neuen 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" }
Einbinden des Polyfills
Erfordern Sie in Ihrer Startdatei beide babel- core/register und babel-polyfill.
startup Datei
require("babel-core/register"); require("babel-polyfill");
Für Webpack-Benutzer denken Sie daran, „babel-polyfill“ als ersten Eintrag in Ihrem Eintragsarray zu platzieren.
Webpack-Konfiguration
module.exports = { entry: ['babel-polyfill', './test.js'], output: { filename: 'bundle.js' }, module: { loaders: [ { test: /\.jsx?$/, loader: 'babel', } ] } };
Beim Testen mit Mocha verwenden Sie den folgenden Befehl:
mocha --compilers js:babel-core/register --require babel-polyfill
Mit diesen Nach Anpassungen sind asynchrone Generatoren jetzt in Ihrer Babel 6-Umgebung verfügbar, sodass Sie nahtlos Async/Await-Syntax schreiben und verwenden können.
Das obige ist der detaillierte Inhalt vonWarum ist „regeneratorRuntime ist nicht definiert' in Babel 6, wenn asynchrone Generatoren verwendet werden, und wie kann ich das Problem beheben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!