0

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しましたが、サーバー側のバージョンをブラウザで実行しようとすると、インジェクション エラーが発生します。

このサードパーティ ライブラリを使用しながら、このプロジェクトの実行可能なサーバー側ビルドを作成する方法を誰かが説明してくれることを願っています。

4

0 に答える 0