プロジェクトでbrowserify + gulp + babelを使用していますが、ES7機能に問題があります。これらは私がインストールしたものです:
そして、これは私の不満のコードです:
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が定義されていません
importの代わりにrequireを使用しても機能しません。質問のほとんどはbrowserifyではなくWebpackを使用しており、他のアプローチは私には機能しなかったので、どうすればよいか教えていただければ幸いです。
もう1つ質問があります。ご覧のとおり、babel-preset-es2015とbabel-preset-es2016の両方をインストールしましたが、どちらも使用しています。 es2015プラグインを削除しても、ES6機能を引き続き使用できますか?また、babel-preset-stage-も含めました。これは、ES7の実験的な機能用です。実際にはbabel-preset-es2016は何ですか?
同じエラーが発生し、「babel-plugin-transform-runtime」を使用して修正します。これもあなたのために働くことを願っています。