Я сталкиваюсь со странным поведением при использовании Angular Elements для создания виджета. Я создал виджет для вызова простой формы обратной связи на другом сайте, а также для сборки на Angular и неплохо работаю в разработке, но когда я создаю приложение для работы, возникают несовместимости между виджетом и некоторыми загруженными модулями.
Виджет загружается в приложение с внешнего URL-адреса при первой загрузке приложения. Затем я вхожу в приложение, и когда модуль загружается с отложенным доступом, он сообщает о следующей ошибке
Некоторая контекстная информация:
- Виджет строится с использованием "@ angular / elements": "^ 7.0.1"
- Виджет использует pollyfill, потому что веб-компоненты еще не получили широкого распространения.
- Поллифилы используют Zone.js
- Приложение построено с использованием Angular 7.0.1
Копаясь в этом нечетком сообщении об ошибке, я выясняю, что это было связано с Zone.js, загруженным дважды приложением и виджетом, это проблемы, связанные с этим
- https://github.com/angular/angular/issues/24466
- https://github.com/angular/angular/issues/24181
- https://github.com/angular/angular/issues/26158
Uncaught Error: Zone already loaded.
at polyfills.d19af636bcf00eb4898f.js:1
at polyfills.d19af636bcf00eb4898f.js:1
at Object.0TWp (polyfills.d19af636bcf00eb4898f.js:1)
at a (runtime.f35a2a91d37680127d85.js:1)
at Module.hN/g (polyfills.d19af636bcf00eb4898f.js:1)
at a (runtime.f35a2a91d37680127d85.js:1)
at Object.1 (polyfills.d19af636bcf00eb4898f.js:1)
at a (runtime.f35a2a91d37680127d85.js:1)
at r (runtime.f35a2a91d37680127d85.js:1)
at Array.t [as push] (runtime.f35a2a91d37680127d85.js:1)
Я также попробовал это решение, но безуспешно:
- https://www.npmjs.com/package/elements-zone-strategy
Я новичок в Angular Elements, любая помощь будет высоко оценена.