防止Core模块被重复导入

Core模块只会在一开始式被导入到根模块中,不允许被其他模块重复导入。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import { NgModule, Optional, SkipSelf } from '@angular/core';
import { CommonModule } from '@angular/common';
@NgModule({
imports: [CommonModule],
})
export class CoreModule {
constructor (@Optional() @SkipSelf() parentModule: CoreModule) {
//如果Core模块已经被导入过了,即parentModule不为空时,抛出错误,防止重复导入
if (parentMoudle) {
throw new Error(
'CoreModule is alrelady loaded. Import it in the AppModule only'
);
}
}
}