모든 명령어는 현재 디렉터리에서 시작해 가장 가까운 .lingo/config.json를 찾을 때까지 상위 디렉터리로 올라갑니다. 모노레포에서 CLI를 사용하는 데 필요한 규칙은 이 하나뿐입니다. 설정 파일을 어디에 둘지만 정하면 됩니다.
옵션 1: 루트에 설정 하나 두기#
패키지들이 동일한 소스 로캘과 대상 로캘을 사용한다면, 리포지토리 루트에 .lingo/config.json 하나만 두고 files 패턴이 각 패키지까지 적용되도록 하세요:
json
{
"sourceLocale": "en",
"targetLocales": ["de", "fr"],
"files": [
{ "pattern": "apps/web/locales/en.json" },
{ "pattern": "packages/docs/content/en/**/*.md" }
]
}루트의 lingo push 하나로 전체를 커버할 수 있습니다. lockfile도 루트에 생성됩니다.
옵션 2: 패키지별로 설정 두기#
패키지마다 서로 다른 로캘이나 엔진이 필요하다면, 각 패키지에 자체 .lingo/config.json를 두세요:
text
apps/web/.lingo/config.json # de, fr
apps/mobile/.lingo/config.json # de, fr, ja, ko패키지 내부에서 명령어를 실행하거나(또는 cd한 뒤) 실행하면, CLI가 해당 패키지의 설정을 찾습니다:
bash
cd apps/mobile && lingo push각 패키지는 자체 lockfile을 가지며, 각자 연결된 엔진도 독립적으로 관리됩니다.
패키지별 CI#
CI에서는 --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/mobileCI/CD를 참고하세요.
하위 디렉터리에서 실행하기
로컬 명령어를 실행할 때 매번 직접 패키지 루트로 cd할 필요는 없습니다. 패키지 내부 어디에서든 lingo push를 실행하면 해당 패키지의 설정 파일이 있는 위치까지 상위로 찾아 올라간 뒤, 그 옆에 lockfile을 기록합니다.
