$ npm install --save-dev @angularclass/hmr
Created
March 8, 2020 21:09
-
-
Save coderkan/f318ee07b93d2be173d7975d528a3163 to your computer and use it in GitHub Desktop.
HMR Blog resources
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| import { NgModuleRef, ApplicationRef } from '@angular/core'; | |
| import { createNewHosts } from '@angularclass/hmr'; | |
| export const hmrBootstrap = (module: any, bootstrap: () => Promise<NgModuleRef<any>>) => { | |
| let ngModule: NgModuleRef<any>; | |
| module.hot.accept(); | |
| bootstrap().then(mod => ngModule = mod); | |
| module.hot.dispose(() => { | |
| const appRef: ApplicationRef = ngModule.injector.get(ApplicationRef); | |
| const elements = appRef.components.map(c => c.location.nativeElement); | |
| const makeVisible = createNewHosts(elements); | |
| ngModule.destroy(); | |
| makeVisible(); | |
| }); | |
| }; |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| import { enableProdMode } from '@angular/core'; | |
| import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; | |
| import { AppModule } from './app/app.module'; | |
| import { environment } from './environments/environment'; | |
| import { hmrBootstrap } from './hmr'; | |
| if (environment.production) { | |
| enableProdMode(); | |
| } | |
| const bootstrap = () => platformBrowserDynamic().bootstrapModule(AppModule); | |
| if (environment.hmr) { | |
| if (module[ 'hot' ]) { | |
| hmrBootstrap(module, bootstrap); | |
| } else { | |
| console.error('HMR is not enabled for webpack-dev-server!'); | |
| console.log('Are you using the --hmr flag for ng serve?'); | |
| } | |
| } else { | |
| bootstrap().catch(err => console.log(err)); | |
| } |
$ npm run hmr
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| "scripts": { | |
| ... | |
| "hmr": "ng serve --configuration hmr" | |
| } |
ng serve --configuration hmr
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| ... | |
| "compilerOptions": { | |
| ... | |
| "types": ["node"] | |
| }, | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment