3

我目前无法让我的 React 应用程序在 IE11 中运行。问题似乎是一些较新的 ES6 东西在 IE11 中不可用。所以我的目标是填充缺失的功能。我正在使用 nwb [1],它是 React 应用程序的零配置设置。但是,我不确定如何配置 Babel(或 Webpack?)来填充某些方法,如 Array.from。看起来 fetch、Promise 和 Object.assign 都是 polyfill-ed 但不是 Array.from 例如。任何帮助将不胜感激。

这是我的 nwb.config 文件:

module.exports = {
         type: 'react-app',
webpack: {
    define: {
        VERSION: JSON.stringify(require('./package.json').version),
        HOSTNAME: JSON.stringify(process.env.NODE_ENV === 'production' ?
                  'https://xyz.azurewebsites.net' :
                  'http://localhost:8080')
    },
    rules: {
        babel: {
            test: /\.jsx?/
        }
    },
    extra: {
        resolve: {
            extensions: ['.jsx']
        },
        devtool: '#inline-source-map'
    },
    html: {
        favicon: 'src/img/favicon.ico'
    }
}
};

谢谢,

[1] React 应用程序工具包。https://github.com/insin/nwb

4

1 回答 1

2

听起来您需要将babel-polyfill添加到您的项目中。

这将模拟完整的 ES2015+ 环境,旨在用于应用程序而不是库/工具。这个 polyfill 在使用 babel-node 时会自动加载。

这意味着您可以使用新的内置函数(如 Promise 或 WeakMap)、静态方法(如 Array.from 或 Object.assign)、实例方法(如 Array.prototype.includes)和生成器函数(前提是您使用了 regenerator 插件)。为了做到这一点,polyfill 添加到全局范围以及像 String 这样的原生原型。

对您来说最简单的方法可能是在主 js 文件的顶部导入它:

import 'babel-polyfill';
于 2017-06-13T19:44:07.513 回答