我目前正在尝试配置babel以用于Vue项目,并且在Internet Explorer中遇到Javascript错误The object does not support the property or method 'assign'
。
我已经查看了许多问题和答案,并找到了可行的解决方案,但它更像是大铁锤,它使已编译javascript的文件大小增加了一倍。
如果我按如下所示修改webpack.config
中的入口点,则可以使用,但这会增加100KB以上的代码。
entry: {
main: ["babel-polyfill","./assets/src/main.js"],
}
由于只需要填充几种方法,所以从Webpack中删除了polyfill并尝试修改babel.config
以仅包括所需的方法。
这是我的babel.config
module.exports = function (api) {
const presets = [
[
"@babel/preset-env",
{
targets: {
chrome: 59,
edge: 11,
firefox: 50,
ie: 11,
},
// for uglifyjs...
forceAllTransforms: api.env("production"),
modules: false,
useBuiltIns: "entry",
"include": [
"es6.object.assign",
"es7.array.includes", //https://github.com/babel/babel/blob/master/packages/babel-preset-env/data/built-in-features.js
]
},
],
];
const plugins = [
"@babel/plugin-transform-object-assign",
"@babel/plugin-transform-object-super",
];
return {
presets,
plugins
};
}
但是这不起作用,并且我仍然遇到相同的Javascript错误,如何将babel配置为仅对Object.assign
使用polyfill?
我在所有babel安装中都包含了Package.json的一部分。
...
"devDependencies": {
"@babel/core": "^7.1.6",
"@babel/plugin-transform-object-assign": "^7.0.0",
"@babel/plugin-transform-runtime": "^7.1.0",
"@babel/preset-env": "^7.1.6",
"@vue/test-utils": "^1.0.0-beta.20",
"babel-loader": "^8.0.4",
....
},
"dependencies": {
"@babel/polyfill": "^7.0.0",
"@babel/runtime": "^7.1.5",