From a8f8cdf7c926af57e795c86952cc65e0ee48de3f Mon Sep 17 00:00:00 2001 From: Alan Agius Date: Thu, 18 Oct 2018 16:58:08 +0200 Subject: [PATCH] fix: add optional section to make appshell work with lazy-loading and ssr (#646) At the moment, there is no clear explaination how to make an app-shell work togather with SSR and lazy loading. See for more context https://github.com/angular/angular-cli/issues/9202 --- server.ts | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/server.ts b/server.ts index 9e6b10a56..8759b3842 100644 --- a/server.ts +++ b/server.ts @@ -1,13 +1,14 @@ import 'zone.js/dist/zone-node'; import 'reflect-metadata'; -import {enableProdMode} from '@angular/core'; +import { enableProdMode } from '@angular/core'; + // Express Engine -import {ngExpressEngine} from '@nguniversal/express-engine'; +import { ngExpressEngine } from '@nguniversal/express-engine'; // Import module map for lazy loading -import {provideModuleMap} from '@nguniversal/module-map-ngfactory-loader'; +import { provideModuleMap } from '@nguniversal/module-map-ngfactory-loader'; import * as express from 'express'; -import {join} from 'path'; +import { join } from 'path'; // Faster server renders w/ Prod mode (dev mode never needed) enableProdMode(); @@ -19,13 +20,23 @@ const PORT = process.env.PORT || 4000; const DIST_FOLDER = join(process.cwd(), 'dist'); // * NOTE :: leave this as require() since this file is built Dynamically from webpack -const {AppServerModuleNgFactory, LAZY_MODULE_MAP} = require('./server/main'); +const { AppServerModuleNgFactory, LAZY_MODULE_MAP } = require('./server/main'); // Our Universal express-engine (found @ https://github.com/angular/universal/tree/master/modules/express-engine) app.engine('html', ngExpressEngine({ bootstrap: AppServerModuleNgFactory, providers: [ - provideModuleMap(LAZY_MODULE_MAP) + provideModuleMap(LAZY_MODULE_MAP), + // In case you want to use an AppShell with SSR and Lazy loading + // you'd need to uncomment the below. (see: https://github.com/angular/angular-cli/issues/9202) + // { + // provide: NgModuleFactoryLoader, + // useClass: ModuleMapNgFactoryLoader, + // deps: [ + // Compiler, + // MODULE_MAP + // ], + // }, ] }));