Ответ
go mod tidy
— это стандартная команда Go для управления зависимостями проекта. Она приводит файл go.mod
в полное соответствие с исходным кодом проекта.
Основные действия go mod tidy
:
- Добавляет недостающие зависимости: Сканирует все
.go
файлы, находит импорты пакетов, которых нет вgo.mod
, и добавляет их. - Удаляет неиспользуемые зависимости: Если в
go.mod
есть зависимость, которая больше не импортируется ни в одном файле проекта, она будет удалена. - Синхронизирует
go.sum
: Обновляет файлgo.sum
, добавляя контрольные суммы для новых зависимостей и удаляя их для неиспользуемых.
Пример:
Предположим, у нас есть:
Файл main.go
package main
import "fmt"
import "rsc.io/quote/v4" // Новая, еще не добавленная зависимость
func main() {
fmt.Println(quote.Go())
}
Файл go.mod
module myproject
go 1.18
require github.com/google/uuid v1.3.0 // Старая, больше не используемая зависимость
После выполнения команды go mod tidy
файл go.mod
будет выглядеть так:
module myproject
go 1.18
require rsc.io/quote/v4 v4.0.1 // Добавлена новая
// Зависимость github.com/google/uuid будет удалена
Когда использовать:
- Перед коммитом: Чтобы убедиться, что
go.mod
отражает актуальное состояние проекта. - После удаления или добавления кода: Особенно после рефакторинга, когда зависимости могли измениться.
- Для поддержания чистоты проекта: Регулярное использование помогает избежать раздувания
go.mod
иgo.sum
.