把 module.id 用作 NgModule 的 id 是常見的反模式,而且在你的程式碼中很可能沒有實質用途。
NgModule 可以用 id 宣告:
@NgModule({
id: 'my_module',
})
export class MyModule {}
宣告 id 會讓該 NgModule 可以透過 getNgModuleById() 操作來查找。此功能很少使用,主要用在非常特定的打包情境中:在延遲載入 NgModule 時不取得它們的直接參照。在大多數 Angular 程式碼中,應改用 ES 動態 import()(import('./path/to/module')),因為這提供了被載入 NgModule 的直接參照,不需要全域註冊的副作用。
如果你沒有使用 getNgModuleById,就不需要為你的 NgModule 提供 id。提供 id 有一個重大缺點:它會讓該 NgModule 無法進行搖樹優化,可能影響你的套件大小。
特別是,指定 id: module.id 的模式源自對 @NgModule.id 的誤解。在較早的 Angular 版本中,有時需要在 @Component 中繼資料中包含 moduleId: module.id 屬性。
除錯方式
你可以從你的 NgModule 中移除 id: module.id 宣告。編譯器會忽略此宣告,並改發出此警告。