請問兩種 ng build 方式的差別及原因,謝謝!
Angular CLI: 7.1.0
問題描述
專案建置執行以下指令後,發現後者(方法 2) 建置出的應用, http interceptor (以下稱AInterceptor) 作用消失了。
因為 AInterceptor 有針對網址做一些處理,所以瀏覽後從開發者工具 Network 明顯看到網址沒有被處理過。
(方法 1)
ng build --prod --source-map --aot=false --build-optimizer=false --base-href
(方法 2)
ng build --prod --source-map --base-href
其他疑點 文件寫這兩個參數 default 都是 false 怎麼會有差別呢?
有點冗長的 import stack
AInterceptor 在 AModule 提供
@NgModule({ 略 })
export class AModule {
public static forRoot(): ModuleWithProviders {
return {
ngModule: AModule,
providers: [{ provide: HTTP_INTERCEPTORS, useClass: AInterceptor, multi: true }]
};
}
}
AModule 被 BModule 引用
@NgModule({
imports: [ AModule.forRoot() ],
})
export class BModule {}
BModule 被 CModule 引用
@NgModule({
imports: [ BModule ]
})
export class CModule {}
CModule 打包成 library 被現在建置的專案引用
@NgModule({
imports: [ CModule ],
})
export class AppModule{}