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

标签 javascript gulp generator babeljs

我使用 Gulp 来转译 ES6,但是对于生成器它给出了错误:“Uncaught ReferenceError: regeneratorRuntime is not defined”。

我发现为此我需要 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()); 

});

但这并没有帮助。

最佳答案

这个插件仍然需要 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>

关于javascript - regeneratorRuntime 未定义,我可以用 Gulp 解决这个问题吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41065943/

相关文章:

parameters - 如何在 gulp 依赖项中传递参数

javascript - 如何使用具有多个入口点的 Webpack 和 Gulp 来转换应用程序和测试目录?

python - Python 函数能否采用生成器并将生成器返回到其生成输出的子集?

javascript - 使用生成器暂停直到 promise 解决

javascript - 将 ipywidgets 导出到网站

javascript - React Konva - 代码突然运行

javascript - HTML5 跨文档消息传递 : can Malicious code sniff messages between domainA. com 和 domainB.com?

javascript - Gulp - 定位文件夹及其子文件夹中的所有文件

python - 以(伪)随机顺序从大列表中高效地生成元素

javascript - jquery - 检查属性上的内联 javascript