我使用 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 中显式导入它:
-
npm install --save-dev babel-polyfill
- 将 polyfill 复制到您的静态脚本文件夹:
cp node_modules/babel-polyfill/dist/polyfill.min.js ./public/js
- 将 polyfill 脚本添加到 html 头部的顶部
<script src="/public/js/polyfill.min.js"></script>
关于javascript - regeneratorRuntime 未定义,我可以用 Gulp 解决这个问题吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41065943/