Babel создает IIFE с помощью функции со стрелкой

#webpack #babeljs #arrow-functions #babel-loader

#webpack #babeljs #стрелка-функции #babel-загрузчик

Вопрос:

Я пытаюсь перенести невероятно простой файл, используя babel и webpack:

 window.foo = function(bar) {
    return {...bar};
}
  

однако вывод (довольно большой),

 (()=>{function e(e,r ... eturn t}({},t)}})();
  

(где я использую ... , чтобы просто сократить вывод для простоты). Мой webpack.config.js выглядит так:

 const path = require('path'); 

module.exports = {
    entry: './src/index.js',
    output: {
        path: path.resolve(__dirname, 'out/'),
        filename: 'index.js'
    },
    module: {
        rules: [
            {
                test: /.m?js$/,
                exclude: /node_modules/,
                use: {
                    loader: "babel-loader",
                    options: {
                        presets: [["@babel/preset-env", {targets:{"ie": "11"}}]],
                        plugins: [
                            "@babel/plugin-proposal-class-properties",
                            "@babel/plugin-transform-arrow-functions"
                        ]
                    }
                }
            }
        ]
  }
};
  

и мой .babelrc

 {
    "presets": [
        [
            "@babel/preset-env",
            {
                "targets": {
                    "ie": "11"
                },
                "useBuiltIns": "entry"
            }
        ]
    ],
    "plugins": [
        "@babel/plugin-proposal-class-properties",
        "@babel/transform-arrow-functions",
    ],
    "env": {
        "development": {},
        "test": {},
        "production": {}
    }
}
  

учитывая, что он создается для IE 11, он не может выводить функцию стрелки — почему это так? Как я могу настроить конфигурацию так, чтобы она не выводила функцию стрелки (чтобы она работала в IE 11)?