没有定义regeneratorRuntime,我可以用Gulp解决这个问题吗?

时间:2016-12-09 17:38:22

标签: javascript gulp generator babel

我使用Gulp来转换ES6,但是使用生成器它会出现以下错误:“未捕获的ReferenceError:未定义regeneratorRuntime”。

我发现我需要babel-polyfill,文档建议使用Node / Browserify / Webpack。

如果没有webpack,我不能在Gulp中解决这个问题吗?我没找到怎么样。我安装了babel-plugin-transform-regenerator并在我的gulpfile.js中完成了这个:

    gulp.task('scripts', function() {
      return gulp.src('src/js/*.js')
                 .pipe(plumber())
                 .pipe(babel({
                          presets: ['es2015', 'stage-3'],
                          plugins: ["transform-regenerator"]
                      }))
                 .pipe(uglify())
                 .pipe(gulp.dest('src/js/result'))
                 .pipe(browserSync.stream()); 

});

但它没有帮助。

1 个答案:

答案 0 :(得分:4)

此插件仍需要regeneratorRuntime。您需要安装babel-polyfill并在JS中显式导入它:

  1. npm install --save-dev babel-polyfill
  2. 将polyfill复制到静态脚本文件夹: cp node_modules/babel-polyfill/dist/polyfill.min.js ./public/js
  3. 将填充脚本添加到html头部的顶部 <script src="/public/js/polyfill.min.js"></script>