正如标题所说,即使我想使用babel-polyfill来允许我在代码中使用promises,但我在IE11中遇到了那个未定义的错误。
我已经尝试了一段时间,因为我已经看到在不同的网站上被询问了几次,但是没有一个解决方案对我来说真正有效(或者更准确地说,我可能无法使它们适应我的代码)。
以下是我认为涉及到的文件:
.babelrc
{
"presets": [
"es2015",
"react"
]
}package.json:我将babel-polyfill放在dev-package.json下,并尝试将其放在依赖项下(都是通过控制台手动交换和安装),但似乎都不起作用
我的script.js没有导入(但如果我尝试导入@babel-script.js,或者当我在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'
}));
});我哪里做错了?
谢谢
发布于 2018-09-24 04:53:11
在JS入口点中任何其他非polyfill代码之前,您需要导入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" ]
}
}]
]
}发布于 2020-07-08 21:15:34
在Babel 7.4.0中,您需要安装并导入以下库:
import "core-js/stable";
import "regenerator-runtime/runtime";https://stackoverflow.com/questions/52470124
复制相似问题