webpack与babel-preset-env"最后2个版本"与Internet Explorer

Lon*_*ike 7 babel internet-explorer-11 webpack

也许我有点幼稚.babel-preset-env的自述文件

https://github.com/babel/babel-preset-env

说:

Babel预设,通过根据您的目标浏览器或运行时环境自动确定您需要的Babel插件和polyfill,将ES2015 +编译为ES5.

然而,IE11在反引号和承诺上窒息,因为webpack/babel既没有将反向模板转换为常规字符串,也没有提出一个承诺polyfill.

我使用webpack 3.4.1和babel-core 6.2.5.

我到底在这里是什么东西?

这是我的webpack配置的babel 使用部分:

    use: [{
      loader: 'babel-loader',
      options: {
        presets: [
          [
            'env',
            {
              targets: {
                browsers: [
                  'last 2 versions'
                ]
              },
              modules: false
            }
          ]
        ],
        plugins: [
          'transform-runtime',
          'syntax-dynamic-import'
        ]
      }
    }]
Run Code Online (Sandbox Code Playgroud)

Mor*_*itz 1

我连续两天都在用头撞墙,因为 babel 根本没有转译任何东西!最后我找到了罪魁祸首: babel-loader 根本没有阅读 .babelrc。迁移到babel.config.js后,babel-loader 现在可以正确使用指定的预设和 polyfill。

我的工作babel.config.js配置@babel/core 7, @babel/present-env 7, @babel/polyfill 7, babel-loader 8:

module.exports = function (api) {
api.cache(true);

return {
    presets: [
      [
        '@babel/env', {
          useBuiltIns: 'entry',
        },
      ],
    ],
  };
};
Run Code Online (Sandbox Code Playgroud)