Crea tu propia biblioteca de componentes en Angular

Hola a todos, hoy os voy a explicar como podemos crear nuestra propia biblioteca de componentes usando Angular.

Una biblioteca de componentes es un conjunto de componentes, pipes, servicios, directivas que podemos reutilizar y compartir con el resto.

Es muy útil para la creación de productos, ya que puedes crear una estructura básica y reutilizar todo lo ya hecho.

En este proyecto podemos hacer incluso documentación para ayudar al resto a entender que hemos hecho.

Algunos ejemplos de bibliotecas:

Creación proyecto Angular

Lo primero es crear un proyecto Angular, sino sabes como se hace, te dejo un tutorial aquí:

Crear y ejecutar un proyecto angular

Creación proyecto biblioteca

Abrimos una terminal y escribimos lo siguiente:

Cambia ddr-test-library por el nombre que prefieras.

En el prefijo, ponle el que tu prefieras, es el prefijo que tendrán tus componentes.

Verás una nueva carpeta llamada projects con el nombre que hemos puesto antes. Veamos algunas partes importantes:

  • Carpeta lib: carpeta donde se almacena todos los elementos de nuestra biblioteca, puedes tener un modulo general para exportar el resto de modulos.
  • public-api.ts: este fichero indica que queremos exportar hacia afuera, esto es importante si queremos que se utilice algun elemento cuando publiquemos nuestra bibilioteca.
  • ng-package.json: opciones para compilar nuestra biblioteca.
  • package.json: es importante por la versión que debemos cambiar cada vez que publiquemos.

De inicio, tendremos un componente creado por defecto.

angular biblioteca 1

En este caso, voy a cambiar el selector de este componente de la biblioteca.

angular biblioteca 2

Arrancar biblioteca Angular

Para testear y probar nuestra biblioteca, vamos a añadir el siguiente script en el fichero package.json (no el que esta en projects).

angular biblioteca 3

npm link

enlaza nuestra biblioteca para detectar cambios, es importante importar los elementos de la biblioteca en app.module.

Para ejecutar ese comando, escribimos en la terminal:

Compilación de biblioteca Angular

Cuando tengamos todo preparado para publicar, tenemos que compilar nuestra biblioteca.

De nuevo, añadimos otro script en el package.json:

Para ejecutar ese comando, escribimos en la terminal:

Se creará la carpeta dist con nuestra biblioteca compilada.

angular biblioteca 4

Publicación biblioteca

Con nuestra biblioteca ya testeada y compilada, es hora de publicar para que el resto de personas lo puedan utilizar.

Antes, necesitamos tener una cuenta en npmjs.

Una vez tengas tu cuenta, abre la terminal y escribe:

Te aparecerá una ventana de npmjs indicándote que te logues.

angular biblioteca 5

Cuando te logues, si vuelves a la terminal, se indica que estarás logueado.

angular biblioteca 6

Como ya estamos logueados en npmjs, podemos ejecutar el siguiente comando:

angular biblioteca 7

¡Importante! Si vuelves a publicar una segunda vez, debes cambiar la version del package.json de la carpeta projects, sino lo haces te dará un error al publicar.

En tu cuenta de npmjs, puedes ver tu biblioteca ya subida.

angular biblioteca 8

angular biblioteca 9

Testeando nuestra biblioteca Angular en otro proyecto

Llega el momento esperado, probar nuestra biblioteca en otro proyecto.

Creamos otro proyecto como hicimos al inicio de este tutorial.

Instalamos nuestra dependencia:

Importamos el modulo DdrTestModule en el fichero app.module.

angular biblioteca 10

En el fichero app.component.html, escribimos el selector del componente de nuestra biblioteca.

Arrancamos el proyecto con el siguiente comando:

Este es el resultado:

Angular biblioteca 11

Si estas interesado en profundizar sobre este tema de bibliotecas en angular, tienes mi curso de udemy de como realizar una biblioteca completa en Angular.

[ufwp id=»2167310″]

Te dejo el repositorio de ejemplo de este tutorial.

https://github.com/DiscoDurodeRoer/example-library-angular

Te dejo un video explicando el tema.

Espero que os sea de ayuda. Si tenéis dudas, preguntad. Estamos para ayudarte.

Compartir

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *


Warning: Trying to access array offset on value of type null in /home2/discodur/public_html/discoduroderoer/wp-content/themes/disto/single.php on line 539