Heim >Web-Frontend >js-Tutorial >Warum erhalte ich in Babel 6 den Fehler „regeneratorRuntime ist nicht definiert' und wie kann ich ihn beheben?
Fehler „regeneratorRuntime ist nicht definiert“ in Babel 6
Bei der Verwendung von Babel 6 kann es vorkommen, dass „regeneratorRuntime ist nicht definiert“ definiert auftritt. Fehler, insbesondere bei Verwendung der Async/Await-Syntax. Dieser Fehler weist darauf hin, dass Ihnen beim Einrichten von Babel eine erforderliche Abhängigkeit oder Konfiguration fehlt.
Um dieses Problem zu beheben, müssen Sie babel-polyfill installieren und konfigurieren. Die Bibliothek stellt eine Reihe von Polyfills bereit, die zur Unterstützung moderner JavaScript-Funktionen wie Async/Await in Umgebungen verwendet werden können, die keine nativ unterstützten Funktionen unterstützen.
Abhängigkeiten installieren
Installieren Sie zunächst babel-polyfill und andere erforderliche Babel-Abhängigkeiten mit npm:
npm i -D babel-core babel-polyfill babel-preset-es2015 babel-preset-stage-0 babel-loader
Update package.json
Aktualisieren Sie Ihre package.json Datei, babel-polyfill zu devDependencies hinzufügen:
"devDependencies": { "babel-core": "^6.0.20", "babel-polyfill": "^6.0.16", "babel-preset-es2015": "^6.0.15", "babel-preset-stage-0": "^6.0.15" }
.babelrc aktualisieren
Sie müssen keine Änderungen an der .babelrc-Datei vornehmen. Es sollte so aussehen:
{ "presets": [ "es2015", "stage-0" ] }
Aktualisieren Sie Ihre JavaScript-Dateien
Stellen Sie sicher, dass Sie die Syntax „async/await“ verwenden. Zum Beispiel:
"use strict"; export default async function foo() { var s = await bar(); console.log(s); } function bar() { return "bar"; }
In Ihrer Startdatei
Stellen Sie in Ihrer Startdatei sicher, dass Sie Babel und babel-polyfill registrieren:
require("babel-core/register"); require("babel-polyfill");
Benutzer, die Webpack verwenden, folgen bitte dem Vorschlag von @Cemen und fügen babel-polyfill hinzu Legen Sie den ersten Wert des Eintragsarrays in Ihrer Webpack-Konfigurationsdatei fest:
module.exports = { entry: ['babel-polyfill', './test.js'], output: { filename: 'bundle.js' }, module: { loaders: [ { test: /\.jsx?$/, loader: 'babel', } ] } };
Verwenden Sie für Mocha-Tests Folgendes:
mocha --compilers js:babel-core/register --require babel-polyfill
Folgen Sie diesen Schritten, sollten Sie „Fähigkeit zum Auflösen“ verwenden. „regeneratorRuntime ist nicht definiert“-Fehler und verwenden Sie die Async/Await-Syntax.
Das obige ist der detaillierte Inhalt vonWarum erhalte ich in Babel 6 den Fehler „regeneratorRuntime ist nicht definiert' und wie kann ich ihn beheben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!