我在我的项目中使用了browserify + gulp + babel,并且遇到了ES7功能问题。这些是我安装的:
这是我的gulp代码:
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'));
当我尝试这个时,会收到错误:
未捕获的ReferenceError:未定义regeneratorRuntime
使用需要而不是导入也不起作用。大多数问题都是使用Webpack,而不是浏览器,其他方法对我没用,所以非常感谢告诉我该怎么做。
我还有一个问题,你可以看到,我安装了babel-preset-es2015和babel-preset-es2016,两者都在使用。如果我删除 es2015 插件,我仍然可以使用ES6功能吗?我还包括 babel-preset-stage-0 ,我知道这是针对实验性的ES7功能。实际上 babel-preset-es2016 得到了什么?
答案 0 :(得分:4)
我有同样的错误并使用" babel-plugin-transform-runtime"修复它。 希望这也适合你。