Webcomponents js polyfill не работает в IE11 (недостаточно стека) - PullRequest
0 голосов
/ 11 февраля 2020

В моем проекте Angular8 мне нужно поддерживать CustomElements и ShadowDom. В моем файле angular. json в секции scripts загружается пакет:

"scripts": [
          "node_modules/@webcomponents/webcomponentsjs/bundles/webcomponents-sd-ce-pf.js"
        ],

В Edge все работает нормально, но Inte rnet Explorer выдает «Ошибка: ошибка: в обещании): Ошибка: недостаточно места в стеке. " Согласно этой проблеме, у некоторых людей были похожие ошибки, поскольку полифилы конфликтуют с пакетом js веб-компонентов.

Я также удалил упомянутые полифилы, но ошибка все еще есть.

Это полный список моих полизаполнений:

import 'core-js/es/symbol';
import 'core-js/es/function';
import 'core-js/es/parse-int';
import 'core-js/es/parse-float';
import 'core-js/es/number';
import 'core-js/es/math';
import 'core-js/es/object';
import 'core-js/es/array';
import 'core-js/es/date';
import 'core-js/es/regexp';
import 'classlist.js';
import 'core-js/es/reflect';

import 'zone.js/dist/zone';

import 'regenerator-runtime/runtime.js';
import 'custom-event-polyfill';
import 'url-polyfill';
import 'css-vars-ponyfill';
import '@babel/polyfill';
import 'intersection-observer';

Я также пытался загрузить пакет или веб-компоненты js -loader. js в и ждать события WebComponentsReady, но это также не имел никакого эффекта.

1 Ответ

0 голосов
/ 13 февраля 2020

Вы также можете обратиться к этой теме в GitHub. В нем упоминается решение из другого поста, которое загружает core-js до webcomponents-loader, например, вы можете попробовать:

<head>
  <script src="//cdnjs.cloudflare.com/ajax/libs/core-js/2.5.7/core.min.js"></script>
  <script src="./@webcomponents/webcomponentsjs/webcomponents-loader.js"></script>
</head>

Кроме того, автор также дает его решение как ниже. Кажется, что Symbol polyfill, используемый webcomponents-loader, вызывает переполнение стека в IE11:

<script src="//cdn.polyfill.io/v2/polyfill.min.js"></script>
<script src="./@webcomponents/webcomponentsjs/webcomponents-loader.js"></script>
...