Ответ
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