Ce face go mod tidy
go mod tidy citește toate importurile din modul (inclusiv din teste) și actualizează go.mod: adaugă în require modulele lipsă (descărcând ultima versiune), șterge modulele care nu mai sunt importate și completează go.sum cu sumele de control.
Rulează-l după ce adaugi sau ștergi importuri, înainte de commit. Când nu este nimic de schimbat, nu afișează nimic. În CI se folosește go mod tidy -diff, care iese cu eroare dacă fișierele nu sunt la zi, fără să le modifice.
Parametri
| Parametru | Descriere |
|---|---|
-v |
Afișează modulele șterse. |
-diff |
Nu modifică nimic; afișează diferențele și iese cu cod nenul dacă ar fi schimbări. |
Exemple
Exemplul 1: Adăugarea automată a unei dependențe
Am scris în cod import "github.com/google/uuid"; go mod tidy găsește modulul, îl descarcă și îl trece în go.mod.
go mod tidy
cat go.mod
Rezultat în terminal
go: finding module for package github.com/google/uuid
go: downloading github.com/google/uuid v1.6.0
go: found github.com/google/uuid in github.com/google/uuid v1.6.0
module exemplu.ro/magazin
go 1.27.2
require github.com/google/uuid v1.6.0
Exemplul 2: Ștergerea unei dependențe nefolosite
După ce am scos importul din cod, -v arată ce a fost șters.
go mod tidy -v
go mod tidy
Rezultat în terminal
unused github.com/google/uuid
Greșeli frecvente
- Adăugarea manuală de linii în
go.modfărăgo mod tidy:go.sumrămâne incomplet (missing go.sum entry). go mod tidyfără acces la internet pentru un import nou: nu poate descărca modulul și dă eroare.- Uitarea lui
go.sumla commit: colegii primesc erori de verificare.
Comenzi înrudite
go get: Adaugă, actualizează sau elimină dependențe în go.mod; descarcă modulele necesare.go mod init: Creează fișierul go.mod în directorul curent și transformă directorul într-un modul Go.module și pachete: Un pachet este un director cu fișiere .go; un modul (go.mod) este un proiect cu mai multe pachete și dependențele lor.go list: Listează pachete sau module și informații despre ele (fișiere, importuri, versiuni), în text sau JSON.