Aujourd’hui, nous allons créer une nouvelle bibliothèque réutilisable. Si vous vous retrouvez à créer le même composant dans plus d’une application (ou si vous voulez partager votre composant avec d’autres développeurs), vous avez besoin d’une bibliothèque.
Créer le projet
Nous utiliserons angular cli pour générer le squelette de la bibliothèque. Si vous n’avez pas installé angular cli, référez-vous au guide d’installation d’angular cli.
Les commandes suivantes vont générer le projet angulaire my-project
et la bibliothèque my-lib
ng new my-projectcd my-projectng generate library my-lib
Ceci crée projects/my-lib
dans le dossier my-project
, qui contient my-lib.component.ts
et my-lib.service.ts
. Angular cli a également créé le fichier public-api.ts
dans le dossier my-lib
. Ce fichier contient les lignes de code suivantes,
export * from './lib/my-lib.service';export * from './lib/my-lib.component';export * from './lib/my-lib.module';
Ce fichier définit ce qui est disponible pour les utilisateurs de la bibliothèque (A.K.A public API).
Si vous ouvrez my-lib.component.ts
, vous verrez le code suivant :
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 {}}
Cette bibliothèque simple sort my-lib works!
et nous utiliserons le sélecteur, <lib-my-lib></lib-my-lib>
pour consommer le composant.
Installer la bibliothèque comme dépendance npm.
Pour utiliser n’importe quelle bibliothèque dans angular, vous devez l’installer à partir d’un gestionnaire de paquets tel que npm. Dans cet exemple, nous ne publierons pas notre bibliothèque au gestionnaire de paquets npm. Si vous voulez apprendre comment publier une bibliothèque angular, référez-vous à angular guide.
Maintenant nous allons installer my-lib
comme dépendance de npm à partir du fichier. Ouvrez package.json
et ajoutez "my-lib": "file:projects/my-lib"
dans le bloc de dépendances, Voir l’extrait de code ci-dessous.
"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
est le nom du paquet que vous verrez dans le dossier node_modules
et file:projects/my-lib
est la bibliothèque réelle. Si nous avions publié notre bibliothèque à npm, nous aurions remplacé file:projects/my-lib
par le numéro de version(0.0.1
).
Si vous exécutez npm install
, vous remarquerez my-lib
ajouté dans le dossier node_modules
. Maintenant, nous pouvons importer et utiliser la bibliothèque dans notre projet. voir l’extrait de code ci-dessous:
import {MyLibModule} from 'my-lib';@NgModule({ declarations: , imports: , providers: , bootstrap: ,})export class AppModule { }
Maintenant que nous avons importé le module de la bibliothèque dans notre projet, nous pouvons utiliser MyLibComponent
. Ouvrez app.component.html
et remplacez tout le code par <lib-my-lib></lib-my-lib>
.
Lancer l’application
Lancer npm start
ou ng serve
pour démarrer l’application. Ouvrez le navigateur et visitez http://localhost:4200, vous verrez my-lib works!
affiché.
Félicitations, vous avez créé avec succès la bibliothèque angulaire !!
Code disponible sur github
.