簡體   English   中英

Angular 8 中圖書館的搖樹

[英]Tree shaking for libraries in Angular 8

我正計划為 Angular 8+ 制作一個獨立的 Angular 服務,並且我一直在閱讀如何使其樹搖樹。

IIUC我們需要做的就是

@Injectable({
  providedIn: 'root',
  useFactory: () => new Service('dependency'),
})
export class Service {
  constructor(private dep: string) {
  }
}

因為這告訴 Angular 如何構建服務。

這就是我們需要做的全部嗎? 我見過像這樣的其他 NPM 模塊使用ModuleWithProviders是這樣的:

 export class Module {
  static forRoot(): ModuleWithProviders {
    return {
      ngModule: Module,
      providers: [
        StripeScriptTag
      ],
    }
  }

我認為這不是必需的,因為providers數組仍然沒有描述如何實例化服務。

您所需要的只是

providedIn: 'root'

在 root 中提供的服務是可搖樹的。 如果它在根目錄中提供,那么您將在整個應用程序中獲得相同的單例實例。 如果您想要跨模塊的服務的新實例而不是全局單例實例,則只需將其添加到 providers 數組。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM