Monorepos

Max PrilutskiyCEO y cofundadorUpdated hace 3 meses · 1 min read

Cada comando recorre hacia arriba desde el directorio actual hasta encontrar el .lingo/config.json más cercano. Esa sola regla basta para que el CLI funcione en un monorepo: tú decides dónde van los archivos de configuración.

Opción 1: una configuración en la raíz#

Si tus paquetes comparten un idioma de origen y los mismos idiomas de destino, coloca un .lingo/config.json en la raíz del repo y deja que sus patrones files alcancen cada paquete:

json
{
  "sourceLocale": "en",
  "targetLocales": ["de", "fr"],
  "files": [
    { "pattern": "apps/web/locales/en.json" },
    { "pattern": "packages/docs/content/en/**/*.md" }
  ]
}

Un solo lingo push en la raíz cubre todo. El archivo de bloqueo también vive ahí.

Opción 2: una configuración por paquete#

Cuando los paquetes necesitan idiomas o motors diferentes, dale a cada uno su propio .lingo/config.json:

text
apps/web/.lingo/config.json      # de, fr
apps/mobile/.lingo/config.json   # de, fr, ja, ko

Ejecuta los comandos desde dentro de un paquete (o entra con cd) y el CLI encontrará la configuración de ese paquete:

bash
cd apps/mobile && lingo push

Cada paquete tiene su propio archivo de bloqueo y se vincula de forma independiente a su propio motor.

CI por paquete#

En CI, apunta el job de cada paquete a su directorio con --working-directory:

yaml
- run: npx @lingo.dev/cli@latest ci --step push --working-directory apps/web
- run: npx @lingo.dev/cli@latest ci --step push --working-directory apps/mobile

Consulta CI/CD.

Ejecutar desde un subdirectorio

No hace falta que vayas manualmente a la raíz del paquete con cd para ejecutar comandos locales: si ejecutas lingo push desde cualquier lugar dentro de un paquete, el CLI sube hasta la configuración de ese paquete y vuelve a escribir el archivo de bloqueo junto a ella.