我一直在使用 msal.js 在我的 Angular 应用程序中进行身份验证。这对于使用ng serve
. 不幸的是,当我尝试使用 node 运行服务器构建时,这个库给了我一个错误。此构建是使用生成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
但是在尝试在浏览器中运行服务器端版本时出现注入错误。
我希望有人能解释我如何在使用这个第三方库的同时制作这个项目的可运行服务器端构建。