La creación de librerías compartidas en TypeScript permite a los desarrolladores encapsular funcionalidad reutilizable y mejorar la mantenibilidad del código. Este artículo explorará el proceso completo de desarrollo de librerías en TypeScript, desde la configuración inicial hasta el despliegue, con un enfoque moderno, ejemplos prácticos y consideraciones de seguridad.
¿Por qué crear librerías compartidas en TypeScript?
Beneficios principales
- Reutilización de código: Evita la duplicación en diferentes proyectos.
- Mantenibilidad: Centraliza la gestión de funcionalidades comunes.
- Escalabilidad: Facilita la integración con nuevos proyectos.
- Colaboración: Permite a los equipos trabajar en conjunto sobre componentes centrales.
Configuración inicial
Requisitos previos
- Tener Node.js y npm instalados.
- Familiaridad con TypeScript.
Crear un nuevo proyecto de librería
- Crea un directorio para la librería:
mkdir my-shared-library cd my-shared-library
- Inicializa un proyecto Node.js:
npm init -y
- Instala TypeScript y otras dependencias necesarias:
npm install typescript --save-dev npm install tslib
- Crea una configuración base de TypeScript:
npx tsc --init
Configurar tsconfig.json
Configura el archivo para soportar módulos comunes y optimizar la compilación:
{
"compilerOptions": {
"outDir": "dist",
"rootDir": "src",
"target": "ES2020",
"module": "CommonJS",
"declaration": true,
"sourceMap": true,
"strict": true
},
"include": ["src/**/*"],
"exclude": ["node_modules", "dist"]
}
Estructura del proyecto
Organiza los archivos de tu proyecto:
my-shared-library/
├── src/
│ ├── index.ts
│ ├── utils/
│ │ └── math.ts
├── dist/
├── package.json
├── tsconfig.json
└── README.md
Desarrollo de la librería
Crear funcionalidades
Ejemplo: Operaciones matemáticas
Archivo: src/utils/math.ts
export function add(a: number, b: number): number {
return a + b;
}
export function subtract(a: number, b: number): number {
return a - b;
}
Archivo de entrada principal
Archivo: src/index.ts
export * from './utils/math';
Compilación de la librería
- Compila el código:
npx tsc
- Verifica que los archivos se generaron en el directorio
dist/
.
Publicación de la librería
Configurar package.json
Asegúrate de incluir los campos necesarios para npm:
{
"name": "my-shared-library",
"version": "1.0.0",
"main": "dist/index.js",
"types": "dist/index.d.ts",
"files": ["dist"],
"scripts": {
"build": "tsc",
"prepublishOnly": "npm run build"
},
"dependencies": {
"tslib": "^2.0.0"
},
"devDependencies": {
"typescript": "^4.0.0"
}
}
Publicar en npm
- Inicia sesión en npm:
npm login
- Publica la librería:
npm publish
Uso de la librería en otros proyectos
Instala la librería:
npm install my-shared-library
Usa las funciones en tu código:
import { add, subtract } from 'my-shared-library'; console.log(add(2, 3)); // 5 console.log(subtract(5, 2)); // 3
Buenas prácticas
- Documentación:
- Usa
README.md
para describir la instalación, uso y ejemplos.
- Usa
- Pruebas unitarias:
- Configura un framework como Jest para validar el comportamiento de la librería.
- Versionado semántico:
- Sigue el esquema
MAJOR.MINOR.PATCH
para gestionar cambios.
- Sigue el esquema
- Optimizar el tamaño:
- Excluye archivos innecesarios en el campo
files
depackage.json
.
- Excluye archivos innecesarios en el campo
- Seguridad:
- Actualiza dependencias regularmente y realiza auditorías con:
npm audit
- Actualiza dependencias regularmente y realiza auditorías con:
Conclusión
Crear librerías compartidas en TypeScript es una estrategia efectiva para mejorar la reutilización de código y aumentar la productividad del equipo. Siguiendo las mejores prácticas y adoptando herramientas modernas, puedes garantizar que tus librerías sean seguras, eficientes y fáciles de usar. ¡Empieza a construir tu próxima librería hoy mismo!