Благодарю.
троил простой веб-компонент через Angular с использованием Паскаля Пречтаруководство, который вы можете увидеть, работаяВОТ, Он автоматически волшебным образом компилируется в Stackblitz по ссылке, но не локально.
Моя конечная цель состоит в том, чтобы локально получить код для результирующего веб-компонента в отдельном файле. В конце концов, я буду загружать его куда-нибудь и вытягивать через один<script>
тег, как и обычные веб-компоненты raw-html / javascript. Я думаю, что вопрос говорит сам за себя, но вы можете прочитать подробности ниже, если хотите:
Чтобы подвести итог моего кода по ссылке выше, у меня есть очень простой компонент:
import { Component } from '@angular/core';
@Component({
selector: 'hello-world',
template: `<h1>Hello world</h1>`
})
export class HelloComponent {}
и у меня есть модуль:
import { NgModule, Injector } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { createCustomElement } from '@angular/elements'
import { HelloComponent } from './hello.component';
@NgModule({
imports: [BrowserModule],
declarations: [HelloComponent],
entryComponents: [HelloComponent]
})
export class AppModule {
constructor(private injector: Injector) {}
ngDoBootstrap() {
const HelloElement = createCustomElement(HelloComponent, {
injector: this.injector
});
customElements.define('hello-world', HelloElement);
}
}
Вот объяснение модуля выше:
Добавить мой компонент вentryComponents
массив, поэтому он не удаляется угловым шейкером (поскольку он недоступен при загрузке приложения:entryComponents: [HelloComponent]
Запустите мой компонент черезФункция createCustomElement, чтобы я мог использовать его как обычный HTMLWeb Component
:
const HelloElement = createCustomElement (HelloComponent, {injector: this.injector});
Наконец, я прошу Angular скомпилировать этот компонент вmain.ts
:
platformBrowserDynamic().bootstrapModule(AppModule);
Вот материал, который я прочитал / посмотрел полностью (среди десятков других ссылок - большинство из которых датированы, как и оригинальное введение в Angular Elements):
Веб-компоненты с нуля Томек Сулковски (Он никогда не компилирует это отдельно)
Веб-компоненты с CLI (Та же проблема)
Веб-компоненты от Academind (Еще раз, этот парень также использует их в приложениях Angular)
Спасибо за любую помощь.