blog-cover

🤔 Resumen

En proyectos a gran escala, mantener estilos consistentes entre múltiples aplicaciones es crucial. Aquí tienes dos enfoques para gestionar estilos compartidos:

  1. 📦 Crear una librería de estilos compartida como un paquete npm.
  2. 🔗 Importar estilos directamente desde un directorio centralizado dentro del monorepo.

📦 1. Crear una Librería de Estilos con npm

Resumen: Este enfoque consiste en crear una librería de estilos dedicada y publicarla como un paquete npm. Los estilos se pueden importar después en cualquier proyecto que los necesite.

Implementación: Por ejemplo, si estás trabajando con estilos de temas personalizados claro/oscuro para PrimeReact, puedes crear tus estilos en una librería y exportarlos usando un archivo index.js así:

module.exports = {
 theme: require('./style/themes/my-theme/theme.scss'),
};

Después de publicar el paquete, puedes instalarlo en tus proyectos con:

npm i my-theme

Luego, simplemente importa los estilos en tu punto de entrada JavaScript principal:

import 'my-theme';

Ventajas: Control de versiones centralizado de estilos. Fácil de actualizar y distribuir entre múltiples proyectos.

Desventajas: Requiere publicar y versionar con cada cambio.

🔗 2. Importación Directa desde un Directorio Centralizado

Resumen: Si estás usando una configuración de monorepo, puedes almacenar tus estilos en un directorio central e importarlos directamente en cada proyecto.

Implementación: Coloca tus estilos en una carpeta a nivel raíz, en paralelo a tus apps, e impórtalos en tus proyectos:

import '../style/themes/my-theme/theme.scss';

Ventajas: No hace falta publicar ni gestionar versiones. Acceso inmediato a los últimos estilos sin pasos adicionales.

Desventajas: Riesgo de cambios accidentales que rompan funcionalidad si los estilos se actualizan. Necesitas tener una estructura de monorepo; no funciona si los proyectos están en repositorios separados.


Autumn/Winter seasonal image

❓ Qué Elegir

  • Usa un paquete npm si quieres tener control de versiones estricto o no tienes todos tus proyectos en la misma carpeta.
  • Usa importación directa desde un directorio centralizado si prefieres una solución más simple y tu estructura de código lo permite.