DevOpsGenerado con IA

Monorepo con Turborepo y pnpm: Setup completo para equipos en 2025

Aprende a configurar un monorepo eficiente con Turborepo y pnpm para proyectos TypeScript/JavaScript, optimizando el flujo de trabajo en equipos de desarrollo latinoamericanos. Incluye ejemplos prácticos y mejores prácticas para escalar tu arquitectura de software.

Edward Díaz — Edwsystem1 de mayo de 202612 min de lectura

Introducción al Monorepo en 2025

En el ecosistema de desarrollo latinoamericano, la adopción de monorepos ha crecido exponencialmente. Esta arquitectura permite gestionar múltiples proyectos dentro de un único repositorio, facilitando la colaboración y el compartir código entre equipos.

Ejemplo: Empresas como Edwsystem usan monorepos para mantener frontends (React), backends (Node.js) y librerías compartidas en una sola estructura.

Configuración inicial con pnpm

Instala pnpm globalmente (alternativa más rápida que npm/yarn):

npm install -g pnpm
pnpm init

Crea la estructura básica del monorepo:

mkdir packages apps
cd packages
pnpm create vite shared-lib --template react-ts

Integración con Turborepo

Instala Turborepo y configura el pipeline de builds:

pnpm add turbo --global
turbo init

Edita turbo.json para definir tareas:

{
  "pipeline": {
    "build": {
      "dependsOn": ["^build"],
      "outputs": ["dist/**"]
    },
    "test": {
      "dependsOn": ["build"],
      "outputs": []
    }
  }
}

Workspaces en pnpm

Configura los workspaces en pnpm-workspace.yaml:

packages:
  - 'packages/*'
  - 'apps/*'

Ejemplo de dependencia compartida entre paquetes:

pnpm add shared-lib --filter "web-app" --workspace

TypeScript en Monorepo

Configuración de paths para imports absolutos:

// tsconfig.base.json
{
  "compilerOptions": {
    "baseUrl": ".",
    "paths": {
      "@shared/*": ["packages/shared-lib/src/*"]
    }
  }
}

Tip: Usa references en tsconfig.json de cada paquete para habilitar compilación incremental.

CI/CD para Monorepo

Ejemplo de GitHub Actions para desplegar solo paquetes modificados:

name: Monorepo CI

on: [push]

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - uses: pnpm/action-setup@v2
      - run: pnpm install
      - run: pnpm turbo run build --filter=...[origin/main]

Conclusión

Este setup con Turborepo + pnpm ofrece:

  • Cache inteligente de builds
  • Instalación eficiente de dependencias
  • Escalabilidad para equipos distribuidos

Ideal para startups y empresas tecnológicas latinoamericanas que buscan optimizar su productividad en 2025.

¿Te fue útil este artículo?

Déjame tu email y te aviso cuando publique nuevos artículos técnicos.