在Angular中将msal与服务器端渲染一起使用

时间:2019-11-01 08:31:26

标签: node.js angular angular-universal msal msal.js

我一直在使用Angular应用程序中的msal.js进行身份验证。对于使用ng serve的开发版本,此方法工作正常。不幸的是,当我尝试使用节点运行服务器构建时,该库给我一个错误。此构建使用npm run build:prod生成,并使用npm run server提供服务。尝试使用节点提供服务后,发生以下错误:

    /Users/mikey/Documents/projectname-angular8/dist/server.js:170525
class WindowWrapper extends Window {
                            ^

ReferenceError: Window is not defined
    at Module.<anonymous> (/Users/mikey/Documents/projectname-angular8/dist/server.js:170525:29)
    at __webpack_require__ (/Users/mikey/Documents/projectname-angular8/dist/server.js:21:30)
    at Object.@azure/msal-angular/dist/msal.module (/Users/mikey/Documents/projectname-angular8/dist/server.js:148059:18)
    at __webpack_require__ (/Users/mikey/Documents/projectname-angular8/dist/server.js:141641:30)
    at Object../src/app/app.server.module.ngfactory.js (/Users/mikey/Documents/projectname-angular8/dist/server.js:142963:13)
    at __webpack_require__ (/Users/mikey/Documents/projectname-angular8/dist/server.js:141641:30)
    at Object../src/main.server.ts (/Users/mikey/Documents/projectname-angular8/dist/server.js:147883:37)
    at __webpack_require__ (/Users/mikey/Documents/projectname-angular8/dist/server.js:141641:30)
    at Object.0 (/Users/mikey/Documents/projectname-angular8/dist/server.js:147904:18)
    at __webpack_require__ (/Users/mikey/Documents/projectname-angular8/dist/server.js:141641:30)

我可以理解为什么会发生错误,但是由于需要该第三方库,因此无法将其从项目中一起删除。我只尝试将这部分代码加载到app.browser.module.ts中,但是尝试在浏览器中运行服务器端版本时遇到注入错误。

我希望有人能解释我如何在使用此第三方库的同时使该项目可运行的服务器端构建。

0 个答案:

没有答案