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
  • 一饮而尽,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而不是导入也不起作用。 大多数问题都使用Webpack,而不是浏览器,其他方法都不适用于我,因此,非常感谢您告诉我该怎么做。

    我还有一个问题,就像你看到的,我安装了babel-preset-es2015和babel-preset-es2016,两者都在使用。 如果我删除es2015插件,我还可以使用ES6功能吗? 而且我还包含了babel-preset-stage-0 ,并且我知道这是针对实验性ES7功能的。 实际上, babel-preset-es2016有什么?


    我有同样的错误,并通过使用“babel-plugin-transform-runtime”来修复它。 希望这也适合你。

    Babel 6 regeneratorRuntime未使用async / await进行定义

    链接地址: http://www.djcxy.com/p/32951.html

    上一篇: regeneratorRuntime is not defined

    下一篇: JavaScript ES2015 dynamic inheritance with browserify and babelify