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
DDDOriginal
2024-12-08 21:47:14582Durchsuche

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

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!

Stellungnahme:
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