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