pull/159/head
Chocobozzz 2017-12-12 14:45:42 +01:00
parent b2731bff28
commit 77d07d6909
No known key found for this signature in database
GPG Key ID: 583A612D890159BE
7 changed files with 38 additions and 3 deletions

View File

@ -33,6 +33,7 @@
"@angular/platform-browser": "~5.1.0",
"@angular/platform-browser-dynamic": "~5.1.0",
"@angular/router": "~5.1.0",
"@angularclass/hmr": "^2.1.3",
"@ngx-meta/core": "^4.0.1",
"@types/core-js": "^0.9.28",
"@types/markdown-it": "^0.0.4",

View File

@ -1,4 +1,5 @@
export const environment = {
production: true,
hmr: false,
apiUrl: ''
}

View File

@ -5,5 +5,6 @@
export const environment = {
production: false,
hmr: true,
apiUrl: 'http://localhost:9000'
}

16
client/src/hmr.ts Normal file
View File

@ -0,0 +1,16 @@
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()
})
}

View File

@ -4,10 +4,22 @@ 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()
}
platformBrowserDynamic()
const bootstrap = () => platformBrowserDynamic()
.bootstrapModule(AppModule)
.catch(err => console.log(err))
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()
}

View File

@ -158,6 +158,10 @@
dependencies:
tslib "^1.7.1"
"@angularclass/hmr@^2.1.3":
version "2.1.3"
resolved "https://registry.yarnpkg.com/@angularclass/hmr/-/hmr-2.1.3.tgz#34e658ed3da37f23b0a200e2da5a89be92bb209f"
"@ngtools/json-schema@1.1.0", "@ngtools/json-schema@^1.1.0":
version "1.1.0"
resolved "https://registry.yarnpkg.com/@ngtools/json-schema/-/json-schema-1.1.0.tgz#c3a0c544d62392acc2813a42c8a0dc6f58f86922"

View File

@ -2,4 +2,4 @@
cd client || exit -1
ng server --host localhost --port 3000
ng server --hmr --host localhost --port 3000