angular4文档和窗口未定义

fat*_*kus 16 javascript webpack .net-core angular

我使用dot net core with angular 4和webpack config.

当我试图在组件或服务中获取窗口或文档时,我收到此错误:

ReferenceError:未定义文档

ReferenceError:未定义窗口

以下是我得到的错误:

Microsoft.AspNetCore.NodeServices[0]
      ERROR { ReferenceError: window is not defined
          at _window (C:\gitRepose\AngularCore\FM\FMWebApp\FootballWebApp\ClientApp\dist\main-server.js:30801:12)
Run Code Online (Sandbox Code Playgroud)

Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware[0]
      An unhandled exception has occurred: window is not defined
      ReferenceError: window is not defined
    at _window (C:\gitRepose\AngularCore\FM\FMWebApp\FootballWebApp\ClientApp\dist\main-server.js:30801:12)
Run Code Online (Sandbox Code Playgroud)

我仍然是webpack的新手,有谁知道我可以解决这个问题?当窗口调整大小时,我需要窗口来处理.

编辑...

我设法通过从index.cshtml中删除预渲染来解决这个问题

我改变了这个:

<app asp-prerender-module="ClientApp/dist/main-server">Loading...</app>
Run Code Online (Sandbox Code Playgroud)

对此:

<app>Loading...</app>
Run Code Online (Sandbox Code Playgroud)

但现在很明显在服务器端预渲染不会发生:/因此它会减慢应用程序启动时间,任何想法如何解决这个问题而不会丢失服务器端预渲染?

Anh*_*yen 8

如果您正在使用服务器端呈现,则应删除使用windowdocument在节点中运行的所有代码,因为节点没有这些变量(节点只有global).

如果您仍想使用windowdocument在节点env中,您可以尝试使用jsdom(https://github.com/tmpvar/jsdom).