Skip to content

Commit 58dda80

Browse files
author
borysn
committed
use new @angularclass/hmr
1 parent 52ef354 commit 58dda80

File tree

6 files changed

+93
-19
lines changed

6 files changed

+93
-19
lines changed

frontend/package.json

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"name": "spring-boot-angular2",
33
"description": "Spring Boot backend, Angular2 frontend with Webpack, Typescript, Sass, Bootstrap4, Karma, Jasmine",
44
"private": true,
5-
"version": "1.1.0",
5+
"version": "1.0.3",
66
"license": "MIT",
77
"scripts": {
88
"postinstall": "node scripts/fixBootstrapLoader.js",
@@ -63,7 +63,8 @@
6363
"@types/node": "^7.0.8",
6464
"@types/source-map": "^0.5.0",
6565
"@types/webpack": "^2.2.11",
66-
"angular2-hmr": "~0.8.1",
66+
"@angularclass/hmr": "^1.2.2",
67+
"@angularclass/hmr-loader": "^3.0.1",
6768
"angular2-template-loader": "^0.6.2",
6869
"autoprefixer": "^6.7.6",
6970
"awesome-typescript-loader": "3.1.2",

frontend/scripts/fixBootstrapLoader.js

100644100755
File mode changed.

frontend/src/app/environment.ts

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
// Angular 2
2+
import {
3+
enableDebugTools,
4+
disableDebugTools
5+
} from '@angular/platform-browser';
6+
import {
7+
ApplicationRef,
8+
enableProdMode
9+
} from '@angular/core';
10+
// Environment Providers
11+
let PROVIDERS: any[] = [
12+
// common env directives
13+
];
14+
15+
// Angular debug tools in the dev console
16+
// https://github.com/angular/angular/blob/86405345b781a9dc2438c0fbe3e9409245647019/TOOLS_JS.md
17+
let _decorateModuleRef = <T>(value: T): T => { return value; };
18+
19+
if ('production' === ENV) {
20+
enableProdMode();
21+
22+
// Production
23+
_decorateModuleRef = (modRef: any) => {
24+
disableDebugTools();
25+
26+
return modRef;
27+
};
28+
29+
PROVIDERS = [
30+
...PROVIDERS,
31+
// custom providers in production
32+
];
33+
34+
} else {
35+
36+
_decorateModuleRef = (modRef: any) => {
37+
const appRef = modRef.injector.get(ApplicationRef);
38+
const cmpRef = appRef.components[0];
39+
40+
let _ng = (<any> window).ng;
41+
enableDebugTools(cmpRef);
42+
(<any> window).ng.probe = _ng.probe;
43+
(<any> window).ng.coreTokens = _ng.coreTokens;
44+
return modRef;
45+
};
46+
47+
// Development
48+
PROVIDERS = [
49+
...PROVIDERS,
50+
// custom providers in development
51+
];
52+
53+
}
54+
55+
export const decorateModuleRef = _decorateModuleRef;
56+
57+
export const ENV_PROVIDERS = [
58+
...PROVIDERS
59+
];
60+

frontend/src/main.ts

Lines changed: 8 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,13 @@
11
import {platformBrowserDynamic} from '@angular/platform-browser-dynamic';
2-
2+
import { bootloader } from '@angularclass/hmr';
3+
import { decorateModuleRef } from './app/environment';
34
import {AppModule} from './app/app.module';
45

5-
export function main(initialHmrState?: any): Promise<any> {
6-
return platformBrowserDynamic().bootstrapModule(AppModule)
7-
.catch(err => console.error(err));
6+
export function main(): Promise<any> {
7+
return platformBrowserDynamic()
8+
.bootstrapModule(AppModule)
9+
.then(decorateModuleRef)
10+
.catch((err) => console.error(err));
811
}
912

10-
/*
11-
* Hot Module Reload
12-
* experimental version by @gdi2290
13-
*/
14-
if ( ENV === 'development' && HMR === true) {
15-
// activate hot module reload
16-
let ngHmr = require('angular2-hmr');
17-
ngHmr.hotModuleReplacement(main, module);
18-
} else {
19-
// bootstrap when document is ready
20-
document.addEventListener('DOMContentLoaded', () => main());
21-
}
13+
bootloader(main);

frontend/src/vendor.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,5 +17,5 @@ if (ENV === 'production') {
1717
// prod
1818
} else {
1919
// dev
20-
require('angular2-hmr');
20+
require('@angularclass/hmr');
2121
}

vendor.ts

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
// angular2
2+
import '@angular/platform-browser';
3+
import '@angular/platform-browser-dynamic';
4+
import '@angular/core';
5+
import '@angular/common';
6+
import '@angular/forms';
7+
import '@angular/http';
8+
import '@angular/router';
9+
10+
import 'rxjs';
11+
import 'jquery';
12+
import 'bootstrap-loader';
13+
import 'font-awesome-sass-loader';
14+
import 'lodash';
15+
16+
if (ENV === 'production') {
17+
// prod
18+
} else {
19+
// dev
20+
require('@angularclass/hmr');
21+
}

0 commit comments

Comments
 (0)