babel ES7 Async-regeneratorRuntime не определен


Я использую browserify + gulp + babel в своем проекте и имею проблемы с функциями ES7. Вот что я установил:

  • babel-plugin-transform-async-to-generator@6.8.0
  • babel-plugin-transform-decorators-legacy@1.3.4 / / для использования декораторы
  • babel-polyfill@6.9.1
  • babel-preset-es2015@6.9.0
  • babel-preset-es2016@6.11.0
  • babel-preset-stage-0@6.5.0
  • babelify@7.3.0
  • browserify@13.0.1
  • глоток
  • gulp-sourcemaps
  • винил-буфер
  • винил-источник-поток

И это мой код глотка:

gulp.task('build', () => {
    let buildPath;
    let destPath;

    buildPath = `./src`;
    destPath = `./dist`;

    return browserify(`${buildPath}/app.js`)
    .transform(babelify, { 
        presets: ["es2015", "es2016", "stage-0"],
        plugins: ["transform-decorators-legacy", "transform-async-to-generator"]
    })
    .bundle()
    .pipe(source('app.js'))
    .pipe(buffer())
    .pipe(sourcemaps.init({loadMaps: true}))
    .pipe(sourcemaps.write('./'))
    .pipe(gulp.dest(`${destPath}`));
});

И это мой код js:

import 'babel-polyfill';

// Async Functions
function wait(t) {
    return new Promise((r) => setTimeout(r, t));
}

async function asyncMania() {
    console.log('1');
    await wait(1000);
    console.log('2');
}

asyncMania().then(() => console.log('3'));

Когда я пытаюсь это сделать, появляется Ошибка:

Uncaught ReferenceError: regeneratorRuntime не определен

Использованиеrequire вместоimport также не работает. Большинство вопросов с использованием Webpack, а не browserify и другие подходы не работали на меня, так что это будет очень ценно скажите мне, как я должен сделать.

И у меня есть еще один вопрос, как вы можете видеть, я установил babel-preset-es2015 и babel-preset-es2016 оба, и оба используют. Если я удалю плагин es2015, смогу ли я по-прежнему использовать функции ES6? А также я включил babel-preset-stage-0 , и, как я знаю, это для экспериментальных функций ES7. Что на самом делеbabel-preset-es2016 получил?

1 5

1 ответ:

У меня есть такая же ошибка и исправить ее с помощью "babel-plugin-transform-runtime". надеюсь, что это также работает для вас.

Бабель 6 regeneratorRuntime не определена с использованием ключевых слов async/ждут