1: Crear la Librería en Angular Instalar Angular CLI si no lo tienes: npm install -g @angular/cli Crear el Workspace y la Librería: (Opcional puedes crear la libreria en cualquier parte sin vincularla al workspace) ng new my-workspace --create-application=false cd my-workspace ng generate library my-library Agregar código a la Librería: Modifica los archivos en projects/my-library/src/public-api.ts para exportar tu funcionalidad. Por ejemplo, puedes agregar un servicio: // projects/my-library/src/lib/my-library.service.ts import { Injectable } from '@angular/core'; @Injectable({ providedIn: 'root', }) export class MyLibraryService { constructor() { } public sayHello(): string { return 'Hello from MyLibraryService!'; } } // projects/my-library/src/public-api.ts export * from './lib/my-library.service'; Nota: Librería ejemplo Para construir la Librería: ng build my-library 2. Configurar Nexus. - Ve a la pestaña de "Repository" en la configuración. - Haz clic en "Create repository" y selecciona "npm (hosted)". - Configura el repositorio con un nombre, como npm-hosted, y ajusta las demás configuraciones según tus necesidades. - Guarda los cambios. 3. Preparar Librería para Publicar en Nexus Para publicar librería es necesario configurar Nexus local con credenciales, entonces en una consola dentro del proyecto. npm login --registry=http://10.1.40.130:8081/repository/npm-hosted/ Ingresa usuario y contraseña de Nexus En el archivo C:\Users\{usuario}\.npmrc se genera la credencial como el siguiente ejemplo; //10.1.40.130:8081/repository/npm-hosted/:_authToken=NpmToken.963f3fcd-2bb5-3570-aa39-acb05c1fe44f Asegurate de agregar al archivo .npmrc de la librería la ruta y las credenciales. @mflibs:registry=http://10.1.40.130:8081/repository/npm-hosted/ //10.1.40.130:8081/repository/npm-hosted/:_authToken=NpmToken.963f3fcd-2bb5-3570-aa39-acb05c1fe44f Aegurate de agregar el publishConfig en el package.json "publishConfig": { "@mflibs:registry": "http://10.1.40.130:8081/repository/npm-hosted/" } 4. Publicar la Librería: Primero, asegúrate de estar en el directorio del workspace (donde está el archivo `package.json` principal) y luego publica la librería: cd dist/my-library npm publish ó npm publish --registry=http://10.1.40.130:8081/repository/npm-hosted/ {{:ada:howto:sicoferp:factory:new-migracion-sicoferp:front:exito_publicanco.png?600|}} Paso 5: Instalar la Librería usando npm link (Para probar local) Crear un enlace simbólico global: cd dist/my-library npm link Enlazar la Librería en tu Proyecto Angular: En el directorio de tu proyecto Angular: npm link my-library 6: Importar la Librería desde Nexus; En el directorio de tu proyecto principal de angular Angular, debe crear .npmrc y agregar las credenciales; @mflibs:registry=http://10.1.40.130:8081/repository/npm-hosted/ //10.1.40.130:8081/repository/npm-hosted/:_authToken=NpmToken.963f3fcd-2bb5-3570-aa39-acb05c1fe44f En el directorio de tu proyecto principal de Angular, ejecutar en la consola; npm install @mflibs/encryption-lib@1.0.15 --registry=http://10.1.40.130:8081/repository/npm-hosted/ **Nota**: Con la librería ya agregada al package.json y el archivo .npmrc con las credenciales, no es necesario volver a instalar en el proyecto, solo es para la primera construcción. **El orden adecuado para realizar cambios y publicar sería el siguiente; ** - Realizar cambios - git add . - git commit -m 'fix: comentario' - git push (Aquí se aumenta la versión con la tarea del Hook, si no lo tiene configurado debe aumentar manual en package.json y utilizar git push --no-verify) - npm install - npm run build - cd dist/my-library - npm publish **Consideraciones Finales** Asegúrate de tener correctamente configurado tu archivo .npmrc y de utilizar el token de acceso adecuado para autenticarte en el registro de Nexus. Además, asegúrate de que la URL del registro sea accesible desde tu red. Si sigues estos pasos, deberías poder crear, publicar, y consumir tu librería Angular de manera efectiva utilizando tanto npm link como el registro privado de Nexus. [[ada:howto:sicoferp:factory:new-migracion-sicoferp:front|←Regresar]]