Конфигурация Babel, npm, Polyfill и Object.assign - PullRequest
0 голосов
/ 23 ноября 2018

В настоящее время я пытаюсь настроить babel для использования с проектом Vue, и у меня возникает ошибка Javascript The object does not support the property or method 'assign' в Internet Explorer.

Я рассмотрел ряд вопросов и ответов и у меня есть работающийрешение, но это больше похоже на кувалду в том, что это удваивает размер файла скомпилированного JavaScript.

Если я изменю точку входа в webpack.config, как показано ниже, это работает, но это добавляет более 100 КБ кода.

entry: {
    main: ["babel-polyfill","./assets/src/main.js"],
}

Поскольку мне требуется лишь несколько методов для заполнения, я удалил полифилл из веб-пакета и попытался изменить 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 только для polyfill для Object.assign?

Я включил часть моего Package.json во все установки babel.

...
"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",
...