如何从 Angular 8 中的 `provideModuleMap(LAZY_MODULE_MAP)` 迁移到 Angular 9

Wil*_*lyC 7 migration express server-side-rendering angular-universal angular

我有一个ngExpressEngine在 Angular 8 中使用 SSR 的大型应用程序。我运行了描述的所有升级过程,但我的server.ts文件没有正确迁移。特别是对provideModuleMap仍然的引用(Angular 9 不再支持它)。

请注意,我的路线都已正确更新,可以将新.then系统用于惰性路线。另请注意,它ng serve可以正常编译并正常工作。仅当我尝试从 express 运行 SSR 包时才会出现此问题。

我的问题可以与 Angular 8 中的这些代码行隔离开来:

// * NOTE :: leave this as require() since this file is built Dynamically
const {AppServerModuleNgFactory, LAZY_MODULE_MAP} = require('./dist/server/main');


  // Our Universal express-engine (found @ https://github.com/angular/universal/tree/master/modules/express-engine)
  app.engine('html', ngExpressEngine({
    bootstrap: AppServerModuleNgFactory,
    providers: [
      provideModuleMap(LAZY_MODULE_MAP)
    ]
  }));
Run Code Online (Sandbox Code Playgroud)

为了尝试让它在 Angular 9 中工作,我删除了对 的调用provideModuleMap(LAZY_MODULE_MAP)并传入了LAZY_MODULE_MAP,但这不起作用,因为它似乎LAZY_MODULE_MAP不再生成了。

...因此,随着我对 Angular 9 的更改,我从尝试运行只能运行客户端的服务器端的事情中得到了您期望的典型错误。即ReferenceError: window is not defined

那么我如何告诉 Angular 9 哪些模块不应该为 SSR 准备,就像在 Angular 8 中那样?