首页 > 解决方案 > Angular:是否需要再使用 app.server.module.ts?

问题描述

我目前正在将旧的 Angular 应用程序转换为新版本(Angular 10),并且应用程序文件夹中有一个名为app.server.module.ts. 但是,据我所知,它似乎与旧版本(可能是 AngularJS)有关,但我不确定如何删除此文件(我应该在 、 等中进行哪些更改app.module.tsapp.routing.module.ts这是下面的文件:

app.server.module.ts

import { NgModule } from '@angular/core';
import { ServerModule } from '@angular/platform-server';
import { ModuleMapLoaderModule } from '@nguniversal/module-map-ngfactory-loader';
import { AppComponent } from './app.component';
import { AppModule } from './app.module';

@NgModule({
    imports: [AppModule, ServerModule, ModuleMapLoaderModule],
    bootstrap: [AppComponent]
})
export class AppServerModule { }

完全删除会不会有问题?

更新: 这是整个前端项目中唯一使用此模块的文件:

tsconfig.server.json.ts:

{
  "extends": "../tsconfig.json",
  "compilerOptions": {
    "target": "es2016"
  },
  "angularCompilerOptions": {
    "entryModule": "app/app.server.module#AppServerModule"
  }
,
  "files": [
    "main.ts"
  ],
  "include": [
    "src/**/*.d.ts"
  ]
}

标签: javascriptangular

解决方案


它与 AngularJS 无关,但与 Angular 有关。

如果要删除此文件(不知道应用程序的整个上下文),您至少需要进行两项更改:

bootstrap元数据添加到另一个模块(AppModule ?),因为它定义了从 index.html 引导的应用程序的根组件

bootstrap: [AppComponent]

检查您的main.ts文件,因为它可能是用于引导您的应用程序的模块:

platformBrowserDynamic()
  .bootstrapModule(AppServerModule)
  .catch((err) => console.error(err));

如果为了您的 AppModule 删除此模块,您还需要将导入添加ServerModuleModuleMapLoaderModule它的 medatdata 中。


推荐阅读