babel: polyfill Array.from для поддержки IE11

В настоящее время у меня возникают проблемы с работой моего приложения React в IE11. Кажется, проблема в том, что некоторые из новых компонентов ES6 недоступны в IE11. Поэтому моя цель - заполнить недостающую функциональность. Я использую nwb [1], который является установкой с нулевой конфигурацией для приложений React. Тем не менее, я не уверен, как настроить Babel (или Webpack?) Для заполнения некоторых методов, таких как Array.from. Похоже, что fetch, Promise и Object.assign полностью заполнены, но не 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

1 ответ

Похоже, вам нужно добавить babel-polyfill в ваш проект.

Это будет эмулировать полную среду ES2015+ и предназначено для использования в приложении, а не в библиотеке / инструменте. Этот полифилл автоматически загружается при использовании babel-node.

Это означает, что вы можете использовать новые встроенные модули, такие как Promise или WeakMap, статические методы, такие как Array.from или Object.assign, методы экземпляров, такие как Array.prototype.include, и функции генератора (при условии, что вы используете плагин регенератора). Polyfill добавляет к глобальной области видимости, а также к собственным прототипам, таким как String, для этого.

Самый простой способ для вас, вероятно, будет импортировать его в начало вашего основного файла js:

import 'babel-polyfill';
Другие вопросы по тегам