📦 Alpura Frontend Angular Archetype Lib
Este proyecto contiene las librerías base de Alpura para proyectos en Angular, incluyendo:
@alpura/core@alpura/commons
Incluye herramientas, componentes y configuraciones necesarias para facilitar el desarrollo frontend.
📦 Manual de Instalación
A continuación se explica el proceso para poder descargar librerías remotas privadas desde NPM utilizando Google Artifact Registry.
📁 Prerrequisitos
Tener instalado Google Cloud CLI (gcloud). Puedes descargarlo desde la siguiente URL: https://cloud.google.com/sdk/docs/install?hl=es-419#windows y configurarlo siguiendo las instrucciones del instalador.
🧩 Autenticación y Configuración
- En PowerShell o CMD, ejecuta el siguiente comando para registrar la cuenta de servicio del ambiente (UAT o PROD) en tu máquina local:
gcloud auth activate-service-account --key-file=archivo-arquitectura.json
El archivo "archivo-arquitectura.json" deberá ser solicitado al área de arquitectura (solo hay ambientes UAT y PROD).
- Ejecuta el siguiente comando para generar tu token de acceso a los artefactos. Del resultado, copia el contenido y pégalo debajo de la primera línea del archivo
.npmrcque se encuentra en la carpeta raíz de tu usuario del sistema operativo.
gcloud artifacts print-settings npm --project=alpura-hub-uat --repository=alpura-npm-lib --location=us-central1 --scope=@alpura
El contenido el archivo .npmrc despues del paso anterior debería ser similar a este:
@alpura:registry=https://us-central1-npm.pkg.dev/alpura-hub-uat/alpura-npm-lib/
//us-central1-npm.pkg.dev/alpura-hub-uat/alpura-npm-lib/:_password="TU_TOKEN_VA_AQUI"
//us-central1-npm.pkg.dev/alpura-hub-uat/alpura-npm-lib/:username=_json_key_base64
//us-central1-npm.pkg.dev/alpura-hub-uat/alpura-npm-lib/:email=not.valid@email.com
🚀 Flujo de trabajo para publicar librerías
1️⃣ Generar el Build y empaquetar librerías
Para compilar todas las librerías y empaquetarlas:
npm run build-pack
Para compilar y empaquetar una librería en específico:
npm run build-pack:core
npm run build-pack:commons
2️⃣ Empaquetar las librerías
Esto generará los archivos .tgz necesarios para publicar:
npm run pack-all
También puedes empaquetar una librería en particular:
npm run pack-alpura-core
npm run pack-alpura-commons
3️⃣ Publicar en el registro NPM privado
Para UAT:
npm run publish:core:uat
npm run publish:commons:uat
Para PROD:
npm run publish:core:prod
npm run publish:commons:prod
Para Producción, cambia la URL del registry en los scripts.
Importante: Asegúrate de que la misma versión publicada en UAT sea la que se publique en Producción, para mantener consistencia de versiones.
Cambiar entre ambientes (UAT / PROD)
Si necesitas cambiar la cuenta activa para moverte de ambiente y poder publicar dependencias de UAT o PROD, sigue estos pasos:
- Para listar las credenciales de login de
gclouddisponibles:
gcloud auth list
- Para setear la cuenta activa, corre el siguiente comando:
gcloud config set account <ACCOUNT>
Ejemplo para UAT:
gcloud config set account jorge-serrano-arquitectura-art@alpura-hub-uat-478817.iam.gserviceaccount.com
Ejemplo para PROD:gcloud config set account facturacion2-0@alpura-hub-prod-473622.iam.gserviceaccount.com
🌱 Versionado Semántico
Sigue la estructura de versiones SemVer:
X.0.0→ Cambios mayores (breaking changes)0.X.0→ Nuevas features menores0.0.X→ Fixes o parches pequeños (bugs, ajustes sin romper funcionalidad)
Actualiza el CHANGELOG.md de cada librería con los cambios correspondientes. Ejemplo de un registro:
# Registro de Cambios
Todos los cambios notables para "alpura/core" serán documentados en este archivo.
El formato está basado en [Keep a Changelog](https://keepachangelog.com/es-ES/1.0.0/),
y este proyecto adhiere al [Versionado Semántico](https://semver.org/spec/v2.0.0.html).
## [0.0.1] - 2025-05-23
### Lanzamiento Inicial
- Versión inicial de la librería alpura/core
- Configuración básica del proyecto
- Estructura inicial del componente alpura-loading
📋 Revisión de Despliegue
✅ Antes de desplegar a Producción, la versión debe ser revisada y aprobada por el Encargado de Arquitectura de Frontend.