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