Descubre cómo desarrollar una librería de componentes en Angular y publicarla en un registro privado usando Verdaccio y npm. Aprende paso a paso a configurar tu entorno, compilar tu librería y reutilizarla en múltiples proyectos Angular.
¿Tienes una serie de componentes reutilizables en Angular y quieres compartirlos entre varios proyectos sin subirlos a npm público? La solución perfecta es usar Verdaccio, un registro privado de paquetes npm.
En este artículo te guiaré paso a paso para:
Antes de comenzar, asegúrate de tener instalado:
npm install -g @angular/cli
npm install -g verdaccio
ng new ng-components-workspace --create-application=false
cd ng-components-workspace
Esto crea un proyecto base de Angular sin una aplicación, ideal para trabajar con librerías.
ng generate library ui-components
Esto generará:
projects/ui-components
UiComponentsModule
ng generate component button --project=ui-components
Luego, asegúrate de exportar los componentes en projects/ui-components/src/public-api.ts
:
export * from './lib/button/button.component';
export * from './lib/ui-components.module';
ng build ui-components
Angular genera el paquete compilado en dist/ui-components
.
npm install -g verdaccio
verdaccio
docker run -it --rm --name verdaccio -p 4873:4873 verdaccio/verdaccio
Accede a tu registro local en http://localhost:4873
Crea un archivo .npmrc
en la raíz del proyecto o de forma global:
registry=http://localhost:4873
Inicia sesión:
npm adduser --registry http://localhost:4873
Cada vez que se reinicie la maquina o el contenedor es necesario hacer login en verdaccio:
npm login --registry http://localhost:4873
Desde el directorio dist/ui-components
:
cd dist/ui-components
npm publish --registry http://localhost:4873
En otro proyecto Angular:
.npmrc
npm install ui-components
AppModule
:import { UiComponentsModule } from 'ui-components';
@NgModule({
imports: [UiComponentsModule],
})
export class AppModule {}
@miempresa/ui-components
)npm version patch|minor|major
Puedes encontrar el código completo de este ejemplo en el siguiente repositorio de GitHub:
🔗 Repositorio en GitHub: smtp-java
Crear y compartir una librería de componentes Angular nunca fue tan fácil como con Verdaccio + npm. Esta estrategia es ideal si trabajas en equipo, manejas múltiples proyectos o simplemente quieres control total sobre tus dependencias.