Skip to content

Commit e6d6f25

Browse files
committed
chore: update ssr and set package manager field
1 parent fb4b442 commit e6d6f25

File tree

3 files changed

+249
-40
lines changed

3 files changed

+249
-40
lines changed

package.json

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
"format:check": "npm run format:base -- --list-different",
2020
"format:fix": "npm run format:base -- --write"
2121
},
22+
"packageManager": "[email protected]",
2223
"engines": {
2324
"node": "18"
2425
},
@@ -47,14 +48,14 @@
4748
"@angular/platform-browser-dynamic": "^17.1.1",
4849
"@angular/platform-server": "^17.1.1",
4950
"@angular/router": "^17.1.1",
50-
"@angular/ssr": "^17.1.1",
5151
"@fortawesome/angular-fontawesome": "^0.11.1",
5252
"@fortawesome/fontawesome-svg-core": "^6.2.0",
5353
"@fortawesome/free-brands-svg-icons": "^6.2.0",
5454
"@fortawesome/free-solid-svg-icons": "^6.2.0",
5555
"@ngrx/router-store": "^17.1.0",
5656
"@ngrx/store": "^17.1.0",
5757
"@ngrx/store-devtools": "^17.1.0",
58+
"@nguniversal/express-engine": "^16.2.0",
5859
"express": "^4.15.2",
5960
"fuzzysort": "^1.1.4",
6061
"hammerjs": "^2.0.8",
@@ -86,7 +87,7 @@
8687
"@types/jasmine": "~3.10.0",
8788
"@types/lodash": "^4.14.202",
8889
"@types/markdown-it": "^12.2.3",
89-
"@types/node": "^12.20.36",
90+
"@types/node": "^20.11.16",
9091
"@typescript-eslint/eslint-plugin": "^6.10.0",
9192
"@typescript-eslint/parser": "^6.10.0",
9293
"browser-sync": "^3.0.0",

server.ts

Lines changed: 18 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,11 @@
1-
21
import 'zone.js/node';
32

43
import { APP_BASE_HREF } from '@angular/common';
5-
import { CommonEngine } from '@angular/ssr';
4+
import { ngExpressEngine } from '@nguniversal/express-engine';
65
import * as express from 'express';
76
import { existsSync } from 'node:fs';
87
import { join } from 'node:path';
9-
import bootstrap from './src/main.server';
8+
import { AppServerModule } from './src/main.server';
109

1110
// the Express app is exported so that it can be used by serverless functions
1211
export function app(): express.Express {
@@ -16,30 +15,26 @@ export function app(): express.Express {
1615
? join(distFolder, 'index.original.html')
1716
: join(distFolder, 'index.html');
1817

19-
const commonEngine = new CommonEngine();
18+
server.engine(
19+
'html',
20+
ngExpressEngine({
21+
bootstrap: AppServerModule
22+
})
23+
);
2024

2125
server.set('view engine', 'html');
2226
server.set('views', distFolder);
2327

24-
server.get('*.*', express.static(distFolder, {
25-
maxAge: '1y'
26-
}));
28+
server.get(
29+
'*.*',
30+
express.static(distFolder, {
31+
maxAge: '1y'
32+
})
33+
);
2734

2835
// all regular routes use the Angular engine
29-
server.get('*', (req, res, next) => {
30-
const { protocol, originalUrl, baseUrl, headers } = req;
31-
32-
commonEngine
33-
.render({
34-
bootstrap,
35-
documentFilePath: indexHtml,
36-
url: `${protocol}://${headers.host}${originalUrl}`,
37-
publicPath: distFolder,
38-
providers: [
39-
{ provide: APP_BASE_HREF, useValue: baseUrl },],
40-
})
41-
.then((html) => res.send(html))
42-
.catch((err) => next(err));
36+
server.get('*', (req, res) => {
37+
res.render(indexHtml, { req, providers: [{ provide: APP_BASE_HREF, useValue: req.baseUrl }] });
4338
});
4439

4540
return server;
@@ -63,10 +58,10 @@ function run(): void {
6358
declare const __non_webpack_require__: NodeRequire;
6459

6560
const mainModule = __non_webpack_require__.main;
66-
const moduleFilename = mainModule && mainModule.filename || '';
61+
const moduleFilename = (mainModule && mainModule.filename) || '';
6762

6863
if (moduleFilename === __filename || moduleFilename.includes('iisnode')) {
6964
run();
7065
}
7166

72-
export default bootstrap;
67+
export * from './src/main.server';

0 commit comments

Comments
 (0)