intermediate

Turborepo

Используйте pipeline задач Turborepo, hashing, remote cache и dependency-aware execution в JS-монорепо.

Turborepo оркестрирует скрипты пакетов через pipeline в `turbo.json`: задачи объявляют `dependsOn`, `outputs` и `inputs` для топологического порядка и local/remote cache.

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

`^build` — сначала build upstream-пакетов. Cache hit требует детерминированных задач и полного hashing inputs, включая lockfile и релевантные env.

На интервью: зависимости pipeline, безопасность remote cache, `--filter`, env в ключах hash и отличие от одних только workspaces.

Типовые ошибки: кэш flaky-тестов; нет `outputs` и ложные hits; секреты в env общего cache.

Компромисс — экономия CI времени против строгости конфига для корректности кэша.

Чеклист:

  • `outputs` для кэшируемых задач.
  • Hash env, влияющих на build.
  • Детерминированные задачи.
  • Проверка miss/hit в CI.