Решением было импортировать скрипт в angular.json / .angular-cli.json
"scripts": [
"assets/elements.js"
]
Как бы то ни было, если вы оставите его таким, вы все равно получите ошибки, скорее всего, при импорте в несколько зон.js - один из вашего приложения Angular, а другой из приложения Angular Web Components. Решение состоит в том, чтобы отключить один из них. Логично было бы отключить тот, который приходит из веб-компонента, но оказалось, что он не работает. Вам придется удалить импорт zone.js из основного приложения Angular и сохранить его в своем веб-компоненте.
Перейдите на polyfills.ts и закомментируйте или удалите
import 'zone.js/dist/zone';
Также не забудьте добавить CUSTOM_ELEMENTS_SCHEMA в ваш AppModule, чтобы Angular знал, что вы будете использовать внешние компоненты.
@NgModule({
declarations: [ ... ],
bootstrap: [ ... ],
imports: [ ... ],
schemas: [ CUSTOM_ELEMENTS_SCHEMA ]
})
Теперь вы можете использовать свой веб-компонент в любом месте приложения с помощью
<custom-button></custom-button>
ВНИМАНИЕ:
Этот подход не будет работать, если вы используете разные версии веб-пакета в этих двух приложениях