Что такое Vendor

«Что такое Vendor» — вопрос из категории Golang, который задают на 23% собеседований Golang Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Vendor в Go — это директория внутри проекта, содержащая копии зависимостей, которые используются вместо глобальных модулей. Это позволяет изолировать зависимости проекта, обеспечивая воспроизводимость сборки.

Пример структуры проекта:

myproject/
  ├── main.go
  ├── go.mod
  └── vendor/
      └── github.com/
          └── some-dependency/

Как включить:

go mod vendor

Плюсы:

  • Изоляция зависимостей
  • Гарантия версий
  • Работа без интернета

Минусы:

  • Увеличивает размер репозитория
  • Требует ручного обновления (go mod vendor после изменений в go.mod)

Используется с флагом -mod=vendor при сборке:

go build -mod=vendor