【问题标题】:webpack 2 doesn't work on IE11?webpack 2 不能在 IE11 上运行?
【发布时间】:2017-05-24 17:37:49
【问题描述】:

我有一个非常基本的 javascript 项目,它使用 webpack (^2.6.0) 作为模块捆绑器。作为供应商模块有一个依赖项,我有一个入口点。我的配置如下:

const path = require('path');
const webpack = require('webpack');

module.exports = {
    entry: {
        bundle: './modules/main.js',
        vendor: ['react']
    },
    output: {
        path: path.join(__dirname, 'build'),
        filename: '[name].js',
        chunkFilename: '[id].js'
    },
    plugins: [
        new webpack.optimize.CommonsChunkPlugin({
            name: "vendor"
        })
    ]
};

这将创建捆绑包bundle.jsvendor.js。 vendor-bundle 还包含 webpack-bootstrap-code,它是在我的任何模块加载之前加载的。现在,检查引导代码发现在第 40 行,webpack 生成了

/******/    var resolvedPromise = new Promise(function(resolve) { resolve(); });

不幸的是,Promise 在 IE11 上不可用,即使你包含一个包含 Promise 的 polyfill(例如 import 'babel-polyfill')作为入口点中的第一件事,甚至作为它自己的入口点,它也永远不会得到在引导代码运行之前执行,这意味着我不能在 IE11 上使用此代码,除非我在我的 webpack-bundle 之前手动包含一个 Promise-polyfill。不出所料,IE11 在我访问我的任何代码甚至是供应商捆绑包之前就会引发 Promise is not defined 错误。

我在这里遗漏了什么还是这是预期的行为?我在 webpack 文档中找不到任何内容来解决这个问题。

【问题讨论】:

标签: javascript webpack promise internet-explorer-11


【解决方案1】:

这似乎是 webpack 2.6.0 引入的问题,已经发布了一个错误: https://github.com/webpack/webpack/issues/4916

【讨论】:

    【解决方案2】:

    我在迁移到 babel 7 时遇到了类似的问题。我没有指定 useBuiltIns 键,因此没有应用 polyfill。

    "useBuiltIns": "usage" 是我遗漏的重要一行。

    "debug": true 在确定应用了哪些 polyfill 方面也很有帮助

    {
      "presets": [
        [
          "@babel/preset-env",
          {
            "targets": {
              "browsers": ["IE >= 11"]
            },
            "useBuiltIns": "usage",
            "debug": true
          }
        ],
        "@babel/preset-react"
      ],
      "plugins": [
          "@babel/plugin-proposal-object-rest-spread", 
          "@babel/plugin-proposal-class-properties", 
          "@babel/plugin-transform-classes"
      ],
      "ignore": ["/node_modules/*"]
    }
    

    【讨论】:

      猜你喜欢
      • 2018-04-19
      • 1970-01-01
      • 2018-12-15
      • 1970-01-01
      • 1970-01-01
      • 2016-08-03
      • 2016-03-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多