我正在使用Angular 10,并试图在我的项目中实现SSR。
运行npm run serve:ssr
时出现以下错误
ReferenceError: window is not defined
当我用Google搜索时,他们建议添加domino
下面是我的server.ts
....
const scripts = fs.readFileSync('dist/asfc-web/browser/index.html').toString();
const window = domino.createWindow(scripts);
global['window'] = window;
global['document'] = window.document;
....
仍然出现相同的错误,请指导我如何解决此问题。
答案 0 :(得分:0)
这是简单的解决方法,
我已经在AppServerModule
之后导入了global['window']
,
global['window'] = window;
global['document'] = window.document;
import { AppServerModule } from '../../projects/asfc-web/src/main.server';
答案 1 :(得分:0)
你可以使用 Renderer2 来监听这个。
import { Renderer2 } from '@angular/core';
constructor(private renderer2: Renderer2) {
...
}
this.renderer2.listen('window', 'load', event => {
this.innerWidth = event.currentTarget.innerWidth;
console.log(this.innerWidth);
});