[英]Tree shaking for libraries in Angular 8
我正計划為 Angular 8+ 制作一個獨立的 Angular 服務,並且我一直在閱讀如何使其樹搖樹。
@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.