Полифиллы в 2019 году для IE11

Это 2019 год, мы хотели бы поддерживать IE11, когда у нас нет ничего лучше, чем заняться в наше время, и я должен признать, что я немного сбит с толку всеми доступными полифиллами.

  • babel-polyfill кажется, рекомендует core-js
  • core-js
  • es5-shim и es6-shim

Насколько я понимаю, все эти вещи должны включать более новую версию Ecmascript, но не патчить остальные. У меня есть пара пользовательских полифилов, например. для поддержки CustomEvent.

Я не думаю, что это что-то меняет, но я использую:

  • веб-пакет 2.7.0
  • вавилон 6.16

Прямо сейчас в верхней части моего основного скрипта у меня есть:

require('core-js');

Но я все еще получаю:

Object doesn't support property of method 'Symbol(Symbol.iterator)_a.Kr7pt1C'

Что, по-видимому, в основном является неподдерживаемой функцией итерации Ecmascript.

Любые советы о том, что делать на макроуровне проблемы?

РЕДАКТИРОВАТЬ

Symbol.iterator на самом деле отсутствует полифил "for ... of".

Обновлено: РЕШЕНИЕ

Моя полная конфигурация видна в этом ответе Включить каталог node_modules в Babel 7

@Andreas очень гостеприимный, спасибо;) Чем это должно быть полезно?

AsTeR 13.07.2019 18:45

Просто используйте babel и транспилируйте код в версию, понятную IE11.

Andreas 13.07.2019 18:46

Я изучаю этот вариант.

AsTeR 13.07.2019 18:58

Вам удалось получить эту работу?

Jayavel 09.12.2019 07:38

@Jayavel да (последняя строка вопроса содержит ссылку на мою окончательную конфигурацию)

AsTeR 09.12.2019 10:25
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
12
5
27 979
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Поскольку вы используете Babel для транспиляции, вы можете использовать предустановку @babel/preset-env и установить целевую среду IE11*.

  1. Установите пресет: yarn add @babel/preset-env --dev

  2. Настройте свои цели в конфигурации Babel:

{
  "presets": [
    ["@babel/presets-env", {
      "targets": {
        "browsers": {
          "ie": "11"
        }
      },
    }]
  ]
}

*От документы

@babel/preset-env takes any target environments you've specified and checks them against its mappings to compile a list of plugins and passes it to Babel.

полно опечаток.... для меня тоже, например. имхо должно быть { "presets": [ ["@babel/preset-env", { "targets": { "ie": "11" } }] ] } но: возникают проблемы с поиском и записями в IE11 .... так что даже у меня не работает

Toskan 20.12.2019 04:14

Targets.browsers — это строка или массив строк. Чтобы указать цели браузера описанным выше способом, это должно быть "targets": { "ie": "11" }

thegreenpizza 29.05.2020 19:53

В официальная документация написано «Чтобы использовать итераторы, вы должны включить Babel полифилл».. Вы можете попробовать установить его с помощью npm install --save @babel/polyfill и использовать с require("@babel/polyfill") в верхней части точки входа в ваше приложение.

The polyfill is provided as a convenience but you should use it with @babel/preset-env and the useBuiltIns option so that it doesn't include the whole polyfill which isn't always needed. Otherwise, we would recommend you import the individual polyfills manually.

Вы также можете попробовать импортировать core-js/fn/symbol/iterator.js.

импорт e-js/fn/symbol/iterator.js в моем polyfills.ts работал как шарм

Richard Medeiros 08.04.2020 21:54

Другие вопросы по теме