Vytvoření knihovny Angular

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
Vstup do celoobrazovkového režimu Ukončení celoobrazovkového režimu

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';
Vstup do celoobrazovkového režimu Ukončení celoobrazovkového režimu

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 {}}
Vstup do celoobrazovkového režimu Ukončení celoobrazovkového režimu

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" }
Vstup do celoobrazovkového režimu Ukončení celoobrazovkového režimu

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 { }
Vstup do celoobrazovkového režimu Ukončení celoobrazovkového režimu

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

.

Napsat komentář