Включить комплект Polyfill в заявку - PullRequest
0 голосов
/ 11 февраля 2020

Мне нужно поддерживать IE с моим приложением, поэтому я решил использовать polyfill.io для поддержки функций ES6. https://polyfill.io/v3/

Это дает мне URL, но я не уверен, как на самом деле его использовать. Я использую веб-пакет, но до сих пор не смог найти решение.

Последняя попытка, которую я сделал, была попытка загрузить его с ajax запросом

//Version 1
$.ajax({
  type: 'GET',
  url: "https://polyfill.io/v3/polyfill.min.js?features=String.prototype.includes",
  success: Srv.main,
  dataType: 'script',
}).done(() => appStart());

//Version 2
$.getScript("https://polyfill.io/v3/polyfill.min.js?features=String.prototype.includes", function (data, textStatus, jqxhr) {
 appStart();
});

, оба кажутся чтобы вернуть скрипт, и на самом деле он, кажется, сначала работает, нет ошибки в String.include в appStart. Но я получаю ошибки в других модулях, где я использую методы. Так что, похоже, он не доступен в глобальном масштабе?

Буду признателен за помощь, может быть, кто-нибудь найдет еще более простое решение с веб-пакетом?

Заранее спасибо!

1 Ответ

1 голос
/ 11 февраля 2020

Я бы использовал core- js для того, чтобы добавить функции ECMAscript в ваше приложение.

npm i core-js
import 'core-js/stable'; // <- at the top of your entry point

Array.from(new Set([1, 2, 3, 2, 1]));          // => [1, 2, 3]
[1, [2, 3], [4, [5]]].flat(2);                 // => [1, 2, 3, 4, 5]
Promise.resolve(32).then(x => console.log(x)); // => 32

Редактировать

Если вы хотите включить только то, что нужно, вы можете отредактировать файл .babelr c, включив в него опцию «useBuiltIns»

// .babelrc

{
  "presets": [
    ["@babel/preset-env", {
      "targets": [
        "Last 2 versions",
      ]

      // This option configures how @babel/preset-env handles polyfills. The 'usage' value imports
      // only the specific polyfill module when they are used in each file.
      "useBuiltIns": "usage"
    }]
  ],
}
...