タイトルにあるように、私もbabel-polyfillを使用してコードでpromiseを使用できるようにしたいと考えていますが、IE11では未定義のエラーが発生します。
私は別のサイトで何度か尋ねられているのを見たように、しばらくこの作業をしようとしましたが、実際に解決したソリューションはありませんでした(より正確には、おそらくそれらを適応させることができません私のコード)
これらは、関与していると思うファイルです。
.babelrc
{
"presets": [
"es2015",
"react"
]
}
package.json:dev-dependenciesの下にbabel-polyfillがあり、依存関係の下に配置しようとしました(コンソールを介して手動でスワップおよびインストールするだけです)
私のscript.jsはインポートとしてそれを持っていません(しかし、@ babel-polyfill、またはpackage.jsonでその構文を見たときにスラッシュと異なる組み合わせをインポートしようとした場合、モジュールが見つかりません)
最後に、gulpfile.babel.jsには次のタスクがあります。
gulp.task('build:js', ['lint'], () => {
return browserify({
entries: path.resolve(paths().source.js, 'script.js'),
extensions: ['.jsx'],
debug: true
})
.transform(babelify)
.plugin('minifyify', {
map: 'script.js.map.json',
output: path.resolve(paths().public.js, 'script.js.map.json')
})
.bundle()
.pipe(source('script.js'))
.pipe(gulp.dest(path.resolve(paths().public.js)))
.pipe(notify({
onLast: true,
message: 'Building JS done'
}));
});
私が間違っているのは何ですか?
ありがとう
any JSエントリポイントの他の非ポリフィルコードの前に、Babel polyfillyをインポートする必要があります。
import 'babel-polyfill';
または、すでにBabel 7に切り替えている場合:
import '@babel/polyfill';
また、プリセットをpreset-env
に切り替える必要があることに注意してください。 Babel 7にアップグレードし、@babel/preset-env
を使用することをお勧めします。
Babel 7に切り替えたと仮定すると、これは.babelrc
のように見えるはずです:
{
"presets": [
[ "@babel/preset-env", {
"targets": {
"browsers": [ "last 1 version", "ie >= 11" ]
}
}]
]
}