Babel,npm,Polyfill和Object.assign配置

时间:2018-11-23 16:27:14

标签: javascript vue.js npm babeljs babel-polyfill

我目前正在尝试配置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",

0 个答案:

没有答案