我已经用webpack配置了babel,最初使用@ babel / polyfill作为webpack配置中的一个条目。通过这种配置,我可以在IE11中运行我的Web应用程序而没有任何错误。由于不推荐使用@ babel / polyfill,因此我尝试使用core-js,这是我的问题开始的地方。 IE11现在给我一个关于webpack:///node_modules/core-js/modules/es.object.set-prototype-of.js文件的错误:
SCRIPT1002:语法错误
脚本本身如下所示:
据我了解,core-js不应该包含在要翻译的babel-loader中,但是在我看来,上面显示的脚本使用的是IE11无法理解的功能。我在这里想念什么?
当前配置如下:
Babel-loader
{
test: /\.js$/,
exclude: /node_modules/,
loader: 'babel-loader',
options: {
configFile: './.babelrc',
},
}
.babelrc
{
"sourceType": "unambiguous",
"presets": [
[
"@babel/preset-env",
{
"useBuiltIns": "usage",
"corejs": {"version": 3, "proposals": true}
}
]
]
}
package.json
"browserslist": [
"defaults"
]
我还从webpack条目和程序包管理器中删除了@ babel / polyfill,而是安装了core-js。
答案 0 :(得分:0)
尝试删除“排除”选项以查看是否为npm模块。 然后,您可以尝试排除除该模块以外的所有模块。 您可以看到@ babel / preset-env受选项'debug'影响的模块,如下所示(在文件.babelrc中):
{
"sourceType": "unambiguous",
"presets": [
[
"@babel/preset-env",
{
"useBuiltIns": "usage",
"corejs": {"version": 3, "proposals": true},
"debug": true
}
]
]
}
要仅排除出现错误的模块,可以执行以下操作:
exclude: /node_modules\\(?!(module_to_include|other_module_to_include)).*/,