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:
{
"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:
apps/web/.lingo/config.json # de, fr
apps/mobile/.lingo/config.json # de, fr, ja, koEjecuta los comandos desde dentro de un paquete (o entra con cd) y el CLI encontrará la configuración de ese paquete:
cd apps/mobile && lingo pushCada 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:
- 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/mobileConsulta 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.
