Skip to content

Commit c0857ce

Browse files
committed
fix(client): fix bad paths in prerender and ssr - still not working with angular-universal
1 parent 8df6a19 commit c0857ce

File tree

9 files changed

+275
-180
lines changed

9 files changed

+275
-180
lines changed

package-lock.json

Lines changed: 244 additions & 149 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,9 @@
3131
"build:ssr": "npm run build:client-and-server-bundles && npm run webpack:server",
3232
"serve:ssr": "node dist/server",
3333
"build:prerender": "npm run build:client-and-server-bundles && npm run webpack:server && npm run generate:prerender",
34-
"serve:prerender": "cd dist/angular-cli-skeleton && http-server",
34+
"serve:prerender": "cd dist/client && http-server",
3535
"generate:prerender": "cd dist && node prerender",
36-
"build:client-and-server-bundles": "ng build --prod --aot && ng run angular-cli-skeleton:server:production",
36+
"build:client-and-server-bundles": "ng build --prod --aot && ng run client:server:production",
3737
"webpack:server": "webpack --config webpack.server.config.js --progress --colors",
3838
"clean": "npm cache clean --force && npm run clean:dist && npm run clean:sonar && npm run clean:coverage && npm run clean:docs",
3939
"clean:dist": "rimraf dist",
@@ -82,46 +82,47 @@
8282
"@angular/platform-browser": "^9.0.0-rc.0",
8383
"@angular/platform-browser-dynamic": "^9.0.0-rc.0",
8484
"@angular/platform-server": "^9.0.0-rc.0",
85-
"@angular/pwa": "^0.803.17",
85+
"@angular/pwa": "^0.803.18",
8686
"@angular/router": "^9.0.0-rc.0",
8787
"@angular/service-worker": "^9.0.0-rc.0",
88+
"@fortawesome/angular-fontawesome": "^0.5.0",
8889
"@fortawesome/fontawesome-svg-core": "^1.2.25",
8990
"@fortawesome/free-solid-svg-icons": "^5.11.2",
90-
"@ng-bootstrap/ng-bootstrap": "^5.1.2",
91-
"@ngrx/store": "^8.4.0",
91+
"@ng-bootstrap/ng-bootstrap": "^5.1.4",
92+
"@ngrx/store": "^8.5.0",
9293
"@nguniversal/express-engine": "^8.1.1",
9394
"@nguniversal/module-map-ngfactory-loader": "^8.1.1",
9495
"bootstrap": "^4.1.3",
9596
"compression": "^1.7.4",
96-
"core-js": "^3.3.6",
97+
"core-js": "^3.4.0",
9798
"domino": "^2.1.0",
9899
"hammerjs": "^2.0.8",
99100
"jquery": "^3.4.1",
100101
"lodash": "^4.17.15",
101-
"ngx-toastr": "^11.2.0",
102+
"ngx-toastr": "^11.2.1",
102103
"popper.js": "^1.16.0",
103104
"reflect-metadata": "^0.1.12",
104105
"rxjs": "^6.5.3",
105106
"tslib": "^1.10.0",
106107
"zone.js": "^0.10.2"
107108
},
108109
"devDependencies": {
109-
"@angular-devkit/build-angular": "^0.900.0-rc.0",
110+
"@angular-devkit/build-angular": "^0.900.0-rc.1",
110111
"@angular/cli": "^9.0.0-rc.0",
111112
"@angular/compiler-cli": "^9.0.0-rc.0",
112113
"@angular/language-service": "^9.0.0-rc.0",
113114
"@angularclass/hmr": "^2.1.3",
114115
"@compodoc/compodoc": "^1.1.11",
115-
"@ngrx/store-devtools": "^8.4.0",
116+
"@ngrx/store-devtools": "^8.5.0",
116117
"@types/hammerjs": "^2.0.36",
117118
"@types/jasmine": "^3.4.5",
118119
"@types/jasminewd2": "^2.0.8",
119120
"@types/jquery": "^3.3.31",
120-
"@types/node": "^12.12.6",
121+
"@types/node": "^12.12.7",
121122
"codelyzer": "^5.2.0",
122123
"coveralls": "^3.0.7",
123124
"cross-env": "^6.0.3",
124-
"husky": "^1.2.0",
125+
"husky": "^3.0.9",
125126
"jasmine-core": "~2.99.1",
126127
"jasmine-spec-reporter": "~4.2.1",
127128
"karma": "^4.4.1",
@@ -132,7 +133,7 @@
132133
"karma-jasmine": "~2.0.1",
133134
"karma-jasmine-html-reporter": "^1.4.2",
134135
"karma-mocha-reporter": "^2.2.5",
135-
"prettier": "=1.14.3",
136+
"prettier": "^1.19.1",
136137
"pretty-quick": "=1.8.0",
137138
"protractor": "~5.4.0",
138139
"rimraf": "^3.0.0",

prerender.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ const domino = require('domino');
4141
enableProdMode();
4242

4343
// Load the index.html file containing referances to your application bundle.
44-
const index = readFileSync(join('angular-cli-skeleton', 'index.html'), 'utf8');
44+
const index = readFileSync(join('client', 'index.html'), 'utf8');
4545
const win = domino.createWindow(index);
4646

4747
global['window'] = win;
@@ -60,10 +60,10 @@ global['Mousetrap'] = function() {
6060
this.reset = function() {};
6161
};
6262

63-
const BROWSER_FOLDER = join(process.cwd(), 'angular-cli-skeletons');
63+
const BROWSER_FOLDER = join(process.cwd(), 'client');
6464

6565
// * NOTE :: leave this as require() since this file is built Dynamically from webpack
66-
const { AppServerModuleNgFactory, LAZY_MODULE_MAP } = require('./dist/angular-cli-skeleton-server/main');
66+
const { AppServerModuleNgFactory, LAZY_MODULE_MAP } = require('./dist/client-server/main');
6767

6868
import { provideModuleMap } from '@nguniversal/module-map-ngfactory-loader';
6969

server.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
/*
22
* MIT License
33
*
4-
* Copyright (c) 2017-2018 Stefano Cappa
4+
* Copyright (c) 2017-2019 Stefano Cappa
55
*
66
* Permission is hereby granted, free of charge, to any person obtaining a copy
77
* of this software and associated documentation files (the "Software"), to deal
@@ -40,7 +40,7 @@ const domino = require('domino');
4040
enableProdMode();
4141

4242
// Our index.html we'll use as our template
43-
const template = readFileSync(join(process.cwd(), 'dist', 'angular-cli-skeleton', 'index.html')).toString();
43+
const template = readFileSync(join(process.cwd(), 'dist', 'client', 'index.html')).toString();
4444
const win = domino.createWindow(template);
4545

4646
global['window'] = win;
@@ -61,10 +61,10 @@ global['Mousetrap'] = function() {
6161
};
6262

6363
const PORT = process.env.PORT || 3000;
64-
const DIST_FOLDER = join(process.cwd(), 'dist', 'angular-cli-skeleton');
64+
const DIST_FOLDER = join(process.cwd(), 'dist', 'client');
6565

6666
// * NOTE :: leave this as require() since this file is built Dynamically from webpack
67-
const { AppServerModuleNgFactory, LAZY_MODULE_MAP } = require('./dist/angular-cli-skeleton-server/main');
67+
const { AppServerModuleNgFactory, LAZY_MODULE_MAP } = require('./dist/client-server/main');
6868

6969
import { provideModuleMap } from '@nguniversal/module-map-ngfactory-loader';
7070

src/app/app.module.ts

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,7 @@ import { StoreModule } from '@ngrx/store';
1313
import { StoreDevtoolsModule } from '@ngrx/store-devtools';
1414
import { ROOT_REDUCERS, metaReducers } from './reducers';
1515

16-
// ************************ optional font-awesome 5 ************************
17-
// to install use both `npm i --save @fortawesome/fontawesome-svg-core` and `npm i --save @fortawesome/free-solid-svg-icons`
18-
import { library, dom } from '@fortawesome/fontawesome-svg-core';
19-
import { faExternalLinkAlt, faPlus, faTimes, faDownload } from '@fortawesome/free-solid-svg-icons';
20-
library.add(faExternalLinkAlt, faPlus, faTimes, faDownload);
21-
dom.watch(); // Kicks off the process of finding <i> tags and replacing with <svg>
22-
// *************************************************************************
16+
import { FontAwesomeModule } from '@fortawesome/angular-fontawesome';
2317

2418
import { environment } from '../environments/environment';
2519

@@ -39,7 +33,7 @@ import { AppComponent } from './app.component';
3933
BrowserAnimationsModule,
4034

4135
HttpClientModule,
42-
HttpClientXsrfModule.withOptions(),
36+
HttpClientXsrfModule,
4337

4438
FormsModule,
4539
ReactiveFormsModule,
@@ -48,6 +42,8 @@ import { AppComponent } from './app.component';
4842
NgbModule,
4943
ToastrModule.forRoot(), // ToastrModule added
5044

45+
FontAwesomeModule,
46+
5147
// if you enabled service workers inside .angular-cli.json,
5248
// I suggest to use it, only for the production build
5349
// TO TEST SERVICE WORKERS IN YOUR BROWSER YOU MUST:

src/app/pages/lazy/lazy.component.spec.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ import { NgbModule } from '@ng-bootstrap/ng-bootstrap';
3737

3838
import { StoreModule } from '@ngrx/store';
3939
import { reducers } from './reducers';
40-
import { mainReducers } from '../../reducers';
40+
import { metaReducers } from '../../reducers';
4141
import { GithubOrg, GithubService, GithubUser } from '../../core/services/github.service';
4242
import { ExampleService, MessageResponse } from '../../core/services/example.service';
4343

@@ -49,7 +49,7 @@ describe('LazyComponent', () => {
4949

5050
TestBed.configureTestingModule({
5151
imports: [NgbModule, SharedModule, CoreModule, HttpClientTestingModule,
52-
StoreModule.forRoot(mainReducers, {reducerFactory: undefined}), StoreModule.forFeature('pageNum', reducers)],
52+
StoreModule.forRoot(metaReducers, {reducerFactory: undefined}), StoreModule.forFeature('pageNum', reducers)],
5353
declarations: [LazyComponent]
5454
}).overrideComponent(LazyComponent, {
5555
set: {

src/app/pages/profile/profile.component.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ import { Observable, Subscription, of } from 'rxjs';
3030
import { delay } from 'rxjs/operators';
3131

3232
import { ToastrService } from 'ngx-toastr';
33+
import { faAddressBook } from '@fortawesome/free-solid-svg-icons';
3334

3435
import { Store, select } from '@ngrx/store';
3536
import { sayByeBye, sayHello } from '../../core/actions/hello-example.actions';
@@ -64,6 +65,8 @@ export class ProfileComponent implements OnInit, OnDestroy {
6465
helloExample$: Observable<string>;
6566
elementsObs: Observable<any> = of(this.elements).pipe(delay(1000));
6667

68+
faAddressBook = faAddressBook;
69+
6770
// TODO Socket.io integration is working for client side rendering (both dev and prod),
6871
// but when you switch to SSR there are some problems, so I decided to remove it
6972
// I'll restore these features in future releases

src/app/pages/profile/profile.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@
3939
<br>
4040

4141
<div class="row">
42-
<span>FontAwesome 5 example: <i class="fas fa-address-book fa-3x"></i></span>
42+
<span>FontAwesome 5 example: <fa-icon [icon]="faAddressBook"></fa-icon></span>
4343
</div>
4444
<br>
4545
<br>

src/index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515

1616
<base href="/">
1717

18-
<link rel="manifest" href="src/manifest.webmanifest">
18+
<link rel="manifest" href="manifest.webmanifest">
1919
<meta name="theme-color" content="#252525">
2020

2121
<style>

0 commit comments

Comments
 (0)