Я столкнулся со странным поведением, используя Angular Elements для создания виджета. Я создал виджет для всплывающего окна с простой формой обратной связи на другом сайте, также строил с помощью Angular и довольно хорошо работал в разработке, но когда я создаю приложение для производства, возникают несовместимости между виджетом и некоторыми лениво загружаемыми модулями.
Виджет загружается в приложение с внешнего URL-адреса при первой загрузке приложения. Затем я вхожу в приложение, и когда модуль загружается лениво, он сообщает о следующей ошибке
Немного контекстной информации:
- Виджет построен с использованием "@angular/elements": "^7.0.1"
- Виджет использует полифилл, потому что веб-компоненты еще не получили широкого распространения.
- Поллифиллы используют 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, буду признателен за любую помощь.