This repository was archived by the owner on Nov 22, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 477
This repository was archived by the owner on Nov 22, 2024. It is now read-only.
Prerender - window is not defined #1742
Copy link
Copy link
Closed
Description
🐞 Bug report
What modules are related to this issue?
- aspnetcore-engine
- builders
- common
- express-engine
- hapi-engine
- module-map-ngfactory-loader
Is this a regression?
No
Description
I have SSR set up in my project. Now I want to prerender some of my pages.
I also have references to the window in my code. Rather than check the platform every time I've just put the stub in my server.ts:
import { createWindow } from 'domino';
// ...
const template = readFileSync(join(distFolder, 'index.html')).toString();
const win = createWindow(template);
(global.window as any) = win;
global.document = win.document;
// ...
And for regular dynamic server rendering this works just fine but when I try to prerender some pages an error occurs.
Am I doing something wrong?
🔬 Minimal Reproduction
https://github.com/diogen737/angular-prerender
# This works
npm run build:ssr
npm run serve:ssr
# This does not
npm run prerender
npm run serve:ssr
🔥 Exception or Error
Prerendering 1 route(s) to /home/diogen/dev/web/angular-prerender/dist/angular-prerender/browser
ERROR ReferenceError: window is not defined
at new AppComponent (/home/diogen/dev/web/angular-prerender/dist/angular-prerender/server/main.js:1:1723379)
at NodeInjectorFactory.AppComponent_Factory [as factory] (/home/diogen/dev/web/angular-prerender/dist/angular-prerender/server/main.js:1:1723496)
at getNodeInjectable (/home/diogen/dev/web/angular-prerender/dist/angular-prerender/server/main.js:1:1034856)
at instantiateRootComponent (/home/diogen/dev/web/angular-prerender/dist/angular-prerender/server/main.js:1:1199673)
at createRootComponent (/home/diogen/dev/web/angular-prerender/dist/angular-prerender/server/main.js:1:1199864)
at ComponentFactory$1.create (/home/diogen/dev/web/angular-prerender/dist/angular-prerender/server/main.js:1:1270314)
at core_ApplicationRef.bootstrap (/home/diogen/dev/web/angular-prerender/dist/angular-prerender/server/main.js:1:1362811)
at moduleRef._bootstrapComponents.forEach.f (/home/diogen/dev/web/angular-prerender/dist/angular-prerender/server/main.js:1:1359644)
at Array.forEach ()
at PlatformRef._moduleDoBootstrap (/home/diogen/dev/web/angular-prerender/dist/angular-prerender/server/main.js:1:1359626)
🌍 Your Environment
Package Version
-----------------------------------------------------------
@angular-devkit/architect 0.901.9
@angular-devkit/build-angular 0.901.9
@angular-devkit/build-optimizer 0.901.9
@angular-devkit/build-webpack 0.901.9
@angular-devkit/core 9.1.9
@angular-devkit/schematics 9.1.9
@angular/cli 9.1.9
@ngtools/webpack 9.1.9
@nguniversal/builders 9.1.1
@nguniversal/common 9.1.1
@nguniversal/express-engine 9.1.1
@schematics/angular 9.1.9
@schematics/update 0.901.9
rxjs 6.5.5
typescript 3.8.3
webpack 4.42.0
Metadata
Metadata
Assignees
Labels
No labels