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

Jav*_*rov 2 javascript generator gulp babeljs

我使用 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()); 

});
Run Code Online (Sandbox Code Playgroud)

但它没有帮助。

Max*_*jev 7

这个插件仍然需要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. 将 polyfill 脚本添加到 html 头的顶部 <script src="/public/js/polyfill.min.js"></script>