Что такое vendor директория?

Junior
561 просмотров
AFK Offer AI

vendor/ — локальная копия всех зависимостей внутри проекта. Создаётся через go mod vendor.

go mod vendor    # копирует зависимости в vendor/
go build -mod=vendor  # сборка из vendor

Зачем:

  • Офлайн-сборка — не нужен доступ к интернету/proxy
  • Контроль — точно знаешь, какой код попадёт в бинарник
  • Скорость CI — не скачивает зависимости каждый раз
project/
├── go.mod
├── go.sum
├── vendor/
│   ├── modules.txt
│   ├── github.com/gin-gonic/gin/
│   └── google.golang.org/grpc/
└── main.go

Если vendor/ есть — go build использует её автоматически. В go.mod ничего менять не нужно.

Сейчас vendor менее популярен: GOMODCACHE + CI-кеширование решают те же задачи без хранения зависимостей в репо.

Следующий вопрос

Что такое SLI?