import {platformBrowserDynamic} from '@angular/platform-browser-dynamic'; import {APP_BASE_HREF} from '@angular/common'; import {BrowserAnimationsModule} from '@angular/platform-browser/animations'; import {NgModule, enableProdMode, ApplicationRef, Component} from '@angular/core'; import {CommonModule, HashLocationStrategy, LocationStrategy} from '@angular/common'; import {removeNgStyles, createNewHosts, bootloader} from '@angularclass/hmr'; import RouterModule from '@common/appRouting' import StorageService from "@common/services/storage/index"; import AuthGuardService from "@common/services/authGuard"; import config from '@common/config' import '../style/common.less' import '../style/modal.less' declare var process: any; @Component({ selector: 'myApp', template: '' }) class App { } @NgModule({ imports: [ BrowserAnimationsModule, RouterModule, CommonModule ], declarations: [ App ], providers: [ (config.basename ? {provide: APP_BASE_HREF, useValue: config.basename} : {provide: LocationStrategy, useClass: HashLocationStrategy}), StorageService, AuthGuardService ], bootstrap: [App] }) class AppModule { constructor(public appRef: ApplicationRef) { } hmrOnInit(store) { } hmrOnDestroy(store) { let cmpLocation = this.appRef.components.map(cmp => cmp.location.nativeElement); store.disposeOldHosts = createNewHosts(cmpLocation); removeNgStyles(); } hmrAfterDestroy(store) { store.disposeOldHosts(); delete store.disposeOldHosts; } } if (process.env.NODE_ENV === 'production') { enableProdMode(); } export function main() { return platformBrowserDynamic().bootstrapModule(AppModule); } bootloader(main);