A mai napon egy új újrafelhasználható könyvtárat fogunk létrehozni. Ha több alkalmazásban is ugyanazt a komponenst készítjük (vagy meg akarjuk osztani a komponensünket más fejlesztőkkel), akkor szükségünk van egy könyvtárra.
Projekt létrehozása
Az angular cli segítségével fogjuk létrehozni a könyvtár vázát. Ha nincs telepítve az angular cli, olvassa el az angular cli telepítési útmutatóját.
A következő parancsok létrehozzák az angular projekt my-project
és a könyvtár my-lib
ng new my-projectcd my-projectng generate library my-lib
Ez létrehozza projects/my-lib
a my-project
mappában, amely tartalmazza my-lib.component.ts
és my-lib.service.ts
. Az Angular cli létrehozott egy public-api.ts
fájlt is a my-lib
mappában. Ez a fájl a következő kódsorokat tartalmazza,
export * from './lib/my-lib.service';export * from './lib/my-lib.component';export * from './lib/my-lib.module';
Ez a fájl határozza meg, hogy mi áll a könyvtár felhasználói rendelkezésére (A.K.A public API).
Ha megnyitjuk a my-lib.component.ts
fájlt, a következő kódot látjuk:
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 {}}
Ez az egyszerű könyvtár kimenet my-lib works!
és mi a szelektor, <lib-my-lib></lib-my-lib>
segítségével fogyasztjuk a komponenst.
Telepítsük a könyvtárat npm függőségként.
Hogy bármilyen könyvtárat használjunk az angularban, telepítenünk kell a csomagkezelőből, például az npm-ből. Ebben a példában nem fogjuk közzétenni a könyvtárunkat az npm csomagkezelőben. Ha meg szeretné tanulni, hogyan kell közzétenni az angular könyvtárat, olvassa el az angular útmutatót.
Most telepítjük a my-lib
mint npm függőséget a fájlból. Nyisd meg a package.json
és add hozzá a "my-lib": "file:projects/my-lib"
függőségek blokkban, Lásd az alábbi kódrészletet.
"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
a csomag neve, amit a node_modules
mappában fogsz látni és file:projects/my-lib
a tényleges könyvtár. Ha közzétennénk a könyvtárunkat az npm-ben, akkor az file:projects/my-lib
helyett a verziószámot(0.0.1
) adnánk meg.
Ha a npm install
futtatásával észrevehetjük, hogy a node_modules
mappába my-lib
került. Most már importálhatjuk és használhatjuk a könyvtárat a projektünkben. lásd az alábbi kódrészletet:
import {MyLibModule} from 'my-lib';@NgModule({ declarations: , imports: , providers: , bootstrap: ,})export class AppModule { }
Most, hogy importáltuk a könyvtár modult a projektünkbe, használhatjuk a MyLibComponent
. Nyissuk meg a app.component.html
-et, és cseréljük ki az összes kódot <lib-my-lib></lib-my-lib>
-ra.
Az alkalmazás futtatása
Futtassuk a npm start
vagy ng serve
parancsot az alkalmazás elindításához. Nyissa meg a böngészőt és látogassa meg a http://localhost:4200, látni fogja a my-lib works!
megjelenését.
Gratulálok, sikeresen létrehozta az angular könyvtárat!!!
A kód elérhető a githubon
.