babel:polyfill Array.from支持IE11

时间:2017-06-13 19:22:28

标签: reactjs babel nwb

我目前无法让我的React应用程序在IE11中运行。问题似乎是IE11中没有一些新的ES6功能。所以我的目标是填充缺少的功能。我使用的是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 app的工具包。 https://github.com/insin/nwb

1 个答案:

答案 0 :(得分:2)

听起来您需要在项目中添加babel-polyfill

  

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

     

这意味着你可以使用像Promise或WeakMap这样的新内置函数static   像Array.from或Object.assign这样的方法,像   Array.prototype.includes和生成器函数(假设您使用   再生器插件)。 polyfill也增加了全球范围   为了做到这一点,像String这样的原生原型。

最简单的方法可能是将其导入主js文件的顶部:

import 'babel-polyfill';