@xpr/embed
v0.0.5
Published
Embed Angular application in any Angular application
Downloads
3
Maintainers
Readme
@xpr/embed - Angular Embed
An easy way to embed Angular application in another Angular application.
Install
npm install @xpr/embed
Embedded Application
Preparing embedded Angular app steps:
- Make sure your root components selector (usually
AppComponent
) is notapp-root
(to avoid collision with hosting app). - Add
@angular/elements
to your appng add @angular/elements
- Add
ngx-build-plus
builder and generate web-components polyfillsng add ngx-build-plus ng g ngx-build-plus:wc-polyfill
- Change your
AppModule
to define a custom element from your root componentimport {createCustomElement} from '@angular/elements'; ... export class AppModule implements DoBootstrap { constructor(private injector: Injector) { } ngDoBootstrap(appRef: ApplicationRef): void { const el = createCustomElement(AppComponent, {injector: this.injector}); customElements.define('my-app', el); } }
- Build yor app using
ng build --prod --output-hashing=none --single-bundle
Host Application
- Copy embedded generated files
main.js
,polyfill-webcomp.js
andstyles.css
into yoursrc/assets
directory of your host app. - Install
@xpr/embed
npm i @xpr/embed
- Import
XprEmbed
module to yourAppModule
- Add
xpr-embed
tag to your template:<xpr-embed tag="my-app"></xpr-embed>