每条命令都会从当前目录一路向上查找,直到最近的 .lingo/config.json。掌握这一条规则,就足以让 CLI 在 monorepo 中顺畅运行——你只需要决定把配置文件放在哪里。
方案 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 就能覆盖全部内容,锁文件也会放在根目录。
方案 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每个包都会拥有自己的锁文件,并独立链接到各自的引擎。
按包配置 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/mobile另请参见 CI/CD。
从子目录运行
本地执行命令时,你不必手动 cd 到包根目录——只要在包内任意位置运行 lingo push,CLI 就会一路向上找到该包的配置,并将锁文件写回配置文件所在位置。
