Rumah > hujung hadapan web > tutorial js > Mengapakah \'regeneratorRuntime tidak ditakrifkan\' dalam Babel 6 apabila menggunakan penjana tak segerak, dan bagaimana saya boleh membetulkannya?

Mengapakah \'regeneratorRuntime tidak ditakrifkan\' dalam Babel 6 apabila menggunakan penjana tak segerak, dan bagaimana saya boleh membetulkannya?

Susan Sarandon
Lepaskan: 2024-11-29 08:40:11
asal
301 orang telah melayarinya

Why is

Penjana Asynchronous Hilang dalam Babel 6

Dalam Babel 6, anda mungkin menghadapi ralat "regeneratorRuntime is not definition" semasa cuba melaksanakan asynchronous penjana. Ini berlaku kerana masa jalan penjana semula, yang membentuk asas asas untuk fungsi tak segerak, perlu disertakan bersama Babel.

Penyelesaian: Sertakan Babel-polyfill

Untuk menyelesaikan masalah ini ralat, anda perlu memasang babel-polyfill, yang menyediakan sokongan untuk asynchronous fungsi.

npm i -D babel-core babel-polyfill babel-preset-es2015 babel-preset-stage-0 babel-loader
Salin selepas log masuk

Konfigurasi Dikemas Kini

Selepas memasang babel-polyfill, kemas kini bahagian "devDependencies" package.json anda dengan yang baharu pakej.

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"
}
Salin selepas log masuk

Menggabungkan Polyfill

Dalam fail permulaan anda, perlukan kedua-dua babel- teras/daftar dan babel-polyfill.

permulaan fail

require("babel-core/register");
require("babel-polyfill");
Salin selepas log masuk

Untuk pengguna webpack, ingat untuk meletakkan 'babel-polyfill' sebagai entri pertama dalam tatasusunan entri anda.

konfigurasi webpack

module.exports = {
  entry: ['babel-polyfill', './test.js'],

  output: {
    filename: 'bundle.js'       
  },

  module: {
    loaders: [
      { test: /\.jsx?$/, loader: 'babel', }
    ]
  }
};
Salin selepas log masuk

Dalam kes ujian menggunakan Mocha, gunakan yang berikut arahan:

mocha --compilers js:babel-core/register --require babel-polyfill
Salin selepas log masuk

Dengan pelarasan ini, penjana tak segerak kini boleh diakses dalam persekitaran Babel 6 anda, membolehkan anda menulis dan menggunakan sintaks async/menunggu dengan lancar.

Atas ialah kandungan terperinci Mengapakah \'regeneratorRuntime tidak ditakrifkan\' dalam Babel 6 apabila menggunakan penjana tak segerak, dan bagaimana saya boleh membetulkannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan