小编Luk*_*ina的帖子

Angular 9 SSR - 在哪里设置 global['window'](使用多米诺骨牌)?

升级到 Angular 9 后,我ReferenceError: window is not defined在运行yarn serve:ssr.

在我们的 Angular 应用程序中,我们使用 Domino 的技巧来模拟 SSR 的窗口(如在https://github.com/Angular-RU/angular-universal-starter/blob/master/server.ts#L21 中)。

因此,ng update在导入后添加这些行之后server.ts


const distFolder = join(process.cwd(), 'dist/browser');
const indexHtml = existsSync(join(distFolder, 'index.original.html')) ? 'index.original.html' : 'index';

// Emulate browser APIs
const domino = require('domino');
const fs = require('fs');
const templateA = fs.readFileSync(join(distFolder, indexHtml)).toString();

const win = domino.createWindow(templateA);
win.Object = Object;
win.Math = Math;
global['window'] = win;
global['document'] = win.document;
Run Code Online (Sandbox Code Playgroud)

然而,设置似乎global['window']发生得太晚或永远不会发生。

您知道在哪里设置 …

angular angular9

9
推荐指数
1
解决办法
2139
查看次数

标签 统计

angular ×1

angular9 ×1