首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >this.debug不是Angular Universal函数

this.debug不是Angular Universal函数
EN

Stack Overflow用户
提问于 2021-01-30 17:57:03
回答 1查看 1.4K关注 0票数 2

我正在使用Angular 10在我的项目中应用SSR。

我发现很多人推荐使用domino

下面是我的server.ts文件

代码语言:javascript
复制
...

import { existsSync, readFileSync } from 'fs';
import { createWindow } from 'domino';

const scripts = readFileSync('dist/video-website-angular/browser/index.html').toString();

const window = createWindow(scripts);
global['window'] = window;

import { AppServerModule } from './src/main.server';
import { APP_BASE_HREF } from '@angular/common';

...

当我运行npm run dev:ssr时,我得到error

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-01-31 05:20:14

实际上,this.debug is not a function错误只是一个副作用。实际的错误是第一个:

为了修复它,您需要将window声明为any,如下所示:

代码语言:javascript
复制
const window: any = createWindow(scripts);

// or via a cast

const window = createWindow(scripts) as any;

还有另一种我最不喜欢的方法,因为它实际上使TS代码的行为像JS一样,并切断了所有类型和代码提示的支持,但它是这样的:

代码语言:javascript
复制
(global as any).window = window;
(global as any).document = window.document;
(global as any).Event = window.Event;
(global as any).KeyboardEvent = window.KeyboardEvent;

这两种方法都可以解决您的问题。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65966642

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档