Librerías NX

💡Nx es un conjunto de herramientas que nos permiten construir aplicaciones full-stack de una manera más sencilla por medio de mono repositorios, reforzando además las buenas prácticas de programación. Podemos generar aplicaciones y librerías full-stack con NestJS y React por medio de la ejecución de algunos sencillos comandos.

Cómo crear una librería NestJs desde cero con NX

Título de la Receta

Crear una Librería NestJS desde Cero con NX

Resumen

En esta receta, aprenderás cómo crear una librería NestJS utilizando Nx en un entorno de monorepositorio. Nx proporciona herramientas que facilitan la construcción y gestión de aplicaciones full-stack, fomentando las mejores prácticas de programación. Al finalizar esta receta, tendrás una librería lista para comenzar a escribir código y publicarla en un registro como npm o GitHub.

Descripción

Nx es una herramienta poderosa para gestionar monorepositorios, permitiendo construir y mantener aplicaciones full-stack de manera eficiente. Esta receta te guiará a través del proceso de creación de una librería NestJS desde cero utilizando Nx, asegurando que sigas las mejores prácticas de programación y configuración.

Prerrequisitos

  • Node.js instalado

  • pnpm instalado

  • npx disponible en tu entorno

  • Conocimientos básicos de NestJS y Nx

Casos de Uso

  • Crear una librería compartida para proyectos NestJS en un monorepositorio.

  • Modularizar código común entre diferentes servicios NestJS.

  • Publicar una librería NestJS en un registro para ser utilizada en otros proyectos.

Instrucciones Paso a Paso

1. Crear el directorio donde vamos a almacenar nuestras librerías

mkdir -p nx-libs
cd nx-libs

2. Crear el workspace de la librería (integrada monorepo)

npx create-nx-workspace@latest --preset "ts" --name "my-nest-lib" --pm "pnpm" --nxCloud "skip" --docker false --workspaceType "integrated" --verbose

3. Acceder al workspace

cd my-nest-lib

4. Crear librería individual, ej: core

pnpm exec nx generate @nx/js:library --name=my-nest-lib --directory=core --importPath=@inlaze_techlead/my-nest-lib --publishable=true --projectNameAndRootFormat=as-provided --no-interactive

Validación

  1. Verifica que la estructura del proyecto se haya creado correctamente en el directorio libs/core/my-nest-lib.

  2. Asegúrate de que los archivos de configuración, como tsconfig.json y project.json, estén presentes y correctamente configurados.

  3. Ejecuta los comandos de build y lint para confirmar que la configuración inicial es válida:

    pnpm exec nx build my-nest-lib
    pnpm exec nx lint my-nest-lib

Solución de Problemas

  • Error en la creación del workspace: Asegúrate de tener la última versión de npx y pnpm instalados.

  • Problemas con permisos: Si encuentras problemas de permisos al ejecutar comandos, intenta correr los comandos con privilegios elevados (sudo).

  • Errores en el build: Revisa la configuración de tsconfig.json y asegúrate de que todas las dependencias necesarias estén instaladas.

Preguntas Frecuentes

  • ¿Puedo usar npm o yarn en lugar de pnpm?

    • Sí, Nx soporta npm y yarn, pero en esta receta usamos pnpm por su eficiencia en la gestión de dependencias.

  • ¿Qué es un monorepositorio integrado?

    • Un monorepositorio integrado es una estructura de proyecto donde múltiples aplicaciones y librerías coexisten en un mismo repositorio, compartiendo configuración y dependencias.

Recursos Adicionales

Conclusión

Has aprendido a crear una librería NestJS desde cero utilizando Nx en un entorno de monorepositorio. Esta configuración te permite gestionar eficientemente tu código y fomentar las mejores prácticas de programación, facilitando la escalabilidad y el mantenimiento de tus aplicaciones full-stack. Ahora puedes comenzar a escribir código en tu nueva librería y publicarla en un registro como npm o GitHub para su reutilización en otros proyectos.

Historial de Revisión


Versión
Fecha
Descripción
Autor

1.0

2024-07-08

Documento Inicial

Inyer Marin

Last updated