This project was generated with Angular CLI version 12.0.0.
ng add @angular/elements
npm install concat
const concat = require('concat');
(async function build() {
const files = [
'./dist/angular-elements/runtime.js',
'./dist/angular-elements/polyfills.js',
'./dist/angular-elements/main.js'
]
await concat(files, './dist/angular-elements/calculator.js');
})()
...
imports: [
BrowserModule,
FormsModule
],
providers: [],
entryComponents: [CalculatorComponent],
// bootstrap: [AppComponent]
...
...
export class AppModule implements DoBootstrap {
constructor(private injector: Injector) { }
ngDoBootstrap() {
const element = createCustomElement(CalculatorComponent, { injector: this.injector });
customElements.define('app-calculator', element)
}
}
1. ng build --prod --output-hashing none
2. node build-script
<app-calculator firstnumber="57"
secondnumber="105"
operator="*"></app-calculator>
document.querySelector('app-calculator')
.addEventListener('getResult', (result) => {
console.log(result)
});