Dzisiaj stworzymy nową bibliotekę wielokrotnego użytku. Jeśli zauważysz, że tworzysz ten sam komponent w więcej niż jednej aplikacji (lub chcesz podzielić się swoim komponentem z innymi programistami), będziesz potrzebował biblioteki.
Utwórz projekt
Użyjemy angular cli do wygenerowania szkieletu biblioteki. Jeśli nie masz zainstalowanego angular cli, zapoznaj się z przewodnikiem instalacji angular cli.
Następujące polecenia wygenerują projekt angular my-project i bibliotekę my-lib
ng new my-projectcd my-projectng generate library my-lib
Tworzy to projects/my-lib w folderze my-project, który zawiera my-lib.component.ts i my-lib.service.ts. Angular cli utworzył również plik public-api.ts w folderze my-lib. Ten plik zawiera następujące linie kodu,
export * from './lib/my-lib.service';export * from './lib/my-lib.component';export * from './lib/my-lib.module';
Ten plik definiuje to, co jest dostępne dla użytkowników biblioteki (A.K.A public API).
Jeśli otworzysz my-lib.component.ts, zobaczysz następujący kod:
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 {}}
Ta prosta biblioteka wyprowadza my-lib works! i użyjemy selektora, <lib-my-lib></lib-my-lib> aby skonsumować komponent.
Zainstaluj bibliotekę jako npm dependency.
Aby użyć jakiejkolwiek biblioteki w angular, musisz zainstalować ją z menedżera pakietów takiego jak npm. W tym przykładzie nie będziemy publikować naszej biblioteki do menedżera pakietów npm. Jeśli chcesz dowiedzieć się jak opublikować bibliotekę kątową, zapoznaj się z przewodnikiem kątowym.
Teraz zainstalujemy my-lib jako zależność npm z pliku. Otwórz package.json i dodaj "my-lib": "file:projects/my-lib" w bloku zależności, Zobacz poniższy fragment kodu.
"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 jest nazwą pakietu, który zobaczysz w folderze node_modules, a file:projects/my-lib jest rzeczywistą biblioteką. Gdybyśmy opublikowali naszą bibliotekę w npm, zastąpilibyśmy file:projects/my-lib numerem wersji (0.0.1).
Jeśli uruchomisz npm install, zauważysz, że my-lib został dodany do folderu node_modules. Teraz możemy zaimportować i użyć biblioteki w naszym projekcie. zobacz fragment kodu poniżej:
import {MyLibModule} from 'my-lib';@NgModule({ declarations: , imports: , providers: , bootstrap: ,})export class AppModule { }
Teraz, gdy zaimportowaliśmy moduł biblioteki do naszego projektu, możemy użyć MyLibComponent. Otwórz app.component.html i zamień cały kod na <lib-my-lib></lib-my-lib>.
Uruchom aplikację
Uruchom npm start lub ng serve, aby uruchomić aplikację. Otwórz przeglądarkę i odwiedź http://localhost:4200, zobaczysz my-lib works! wyświetlone.
Gratulacje pomyślnie utworzyłeś bibliotekę kątową!!!
Kod dostępny na github