Dnes vytvoříme novou opakovaně použitelnou knihovnu. Pokud zjistíte, že vytváříte stejnou komponentu ve více než jedné aplikaci (nebo chcete svou komponentu sdílet s dalšími vývojáři), budete knihovnu potřebovat.
Vytvořte projekt
K vygenerování kostry knihovny použijeme angular cli. Pokud nemáte nainstalovaný angular cli, podívejte se do průvodce instalací angular cli.
Následující příkazy vygenerují angular projekt my-project
a knihovnu my-lib
ng new my-projectcd my-projectng generate library my-lib
Vytvoří se projects/my-lib
ve složce my-project
, která obsahuje my-lib.component.ts
a my-lib.service.ts
. Angular cli také vytvoří soubor public-api.ts
ve složce my-lib
. Tento soubor obsahuje následující řádky kódu,
export * from './lib/my-lib.service';export * from './lib/my-lib.component';export * from './lib/my-lib.module';
Tento soubor definuje, co je k dispozici uživatelům knihovny (A.K.A veřejné API).
Pokud otevřete my-lib.component.ts
, uvidíte následující kód:
import { Component, OnInit } from '@angular/core';@Component({ selector: 'lib-my-lib', template: `<p>my-lib works!</p>`, styles: })export class MyLibComponent implements OnInit { constructor() { } ngOnInit(): void {}}
Tento jednoduchý výstup knihovny my-lib works!
a my použijeme selektor, <lib-my-lib></lib-my-lib>
pro konzumaci komponenty.
Nainstalujte knihovnu jako závislost npm.
Chcete-li v angularu používat jakoukoli knihovnu, musíte ji nainstalovat ze správce balíčků, například npm. V tomto příkladu nebudeme naši knihovnu publikovat ve správci balíčků npm. Pokud se chcete dozvědět, jak publikovat angulární knihovnu, přečtěte si angular guide.
Nyní nainstalujeme my-lib
jako závislost na npm ze souboru. Otevřete package.json
a přidejte "my-lib": "file:projects/my-lib"
do bloku závislostí, viz úryvek kódu níže.
"dependencies": { ... "@angular/router": "~9.1.4", "rxjs": "~6.5.4", "tslib": "^1.10.0", "zone.js": "~0.10.2", "my-lib": "file:projects/my-lib" }
my-lib
je název balíčku, který uvidíte ve složce node_modules
, a file:projects/my-lib
je vlastní knihovna. Pokud bychom naši knihovnu publikovali v npm, nahradili bychom file:projects/my-lib
číslem verze(0.0.1
).
Pokud spustíte npm install
, zjistíte, že do složky node_modules
bylo přidáno my-lib
. Nyní můžeme knihovnu importovat a používat v našem projektu. viz úryvek kódu níže:
import {MyLibModule} from 'my-lib';@NgModule({ declarations: , imports: , providers: , bootstrap: ,})export class AppModule { }
Teď, když jsme modul knihovny importovali do našeho projektu, můžeme použít MyLibComponent
. Otevřete app.component.html
a nahraďte celý kód <lib-my-lib></lib-my-lib>
.
Spustit aplikaci
Spustit aplikaci npm start
nebo ng serve
. Otevřete prohlížeč a navštivte http://localhost:4200, zobrazí se my-lib works!
.
Gratulujeme, úspěšně jste vytvořili knihovnu angular!!!
Kód je k dispozici na githubu
.