Heim > Web-Frontend > js-Tutorial > Warum erhalte ich in Babel 6 den Fehler „regeneratorRuntime ist nicht definiert' und wie kann ich ihn beheben?

Warum erhalte ich in Babel 6 den Fehler „regeneratorRuntime ist nicht definiert' und wie kann ich ihn beheben?

DDD
Freigeben: 2024-12-08 21:47:14
Original
598 Leute haben es durchsucht

Why am I getting a

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
Nach dem Login kopieren

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"
}
Nach dem Login kopieren

.babelrc aktualisieren

Sie müssen keine Änderungen an der .babelrc-Datei vornehmen. Es sollte so aussehen:

{
  "presets": [ "es2015", "stage-0" ]
}
Nach dem Login kopieren

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";
}
Nach dem Login kopieren

In Ihrer Startdatei

Stellen Sie in Ihrer Startdatei sicher, dass Sie Babel und babel-polyfill registrieren:

require("babel-core/register");
require("babel-polyfill");
Nach dem Login kopieren

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', }
    ]
  }
};
Nach dem Login kopieren

Verwenden Sie für Mocha-Tests Folgendes:

mocha --compilers js:babel-core/register --require babel-polyfill
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage