2016-06-02 3 views
1

Я использую React, Webpack, Babel для создания проекта и желаю, чтобы он запускался в IE8, есть проблема, что Object.defineProperty не поддерживается в IE8.Как преобразовать Object.defineProperty в IE8

Я не использовал эту функцию, но пакеты npm делают это, как реагирующий маршрутизатор. Я пробовал polyfill, es5-shim, es5-sham и много плагинов для babel, но, к сожалению, не работает для меня ...

Итак, что еще я могу сделать для этой ситуации?

Поистине оцените.

ответ

0

В общем случае для поддержки более старых браузеров, вы хотели бы использовать babel-preset-es2015-loose вместо babel-preset-es2015, который остановит наиболее использование Object.defineProperty.

+0

Извините за поздний ответ. Я уже использую свободный режим, но есть ошибка в файле es5.js. Деталь - 'if ('get' в Attributes || 'set' в атрибутах) throw TypeError ('Accessors not supported!')'. На самом деле я не знаю, какой код вызывает эту ошибку ... большое вам спасибо – Prometheus

+1

'Object.defineProperty' не может быть переписано. Свободный режим говорит Бабелю, чтобы он не использовал его, если это возможно, но в настоящее время он все еще может возникать в зависимости от вашего использования. Например, 'export * from 'foo';' будет генерировать вызовы Object.defineProperty'. Вам нужно будет отладить свою кодовую базу и выяснить, откуда идут вызовы. – loganfsmyth

+0

Я уже реорганизую код из 'export default' и' export * 'to' module.exports', я обещаю, что в моем коде нет проблем. Это должна быть ошибка библиотеки сторонних разработчиков, но я не мог ее позиционировать. Но спасибо вам также ... – Prometheus

Смежные вопросы