Ce face go work
Un workspace leagă mai multe module aflate pe disc: dacă modulul magazin folosește modulul utile și le modifici pe amândouă, fișierul go.work face ca magazin să folosească direct codul local al lui utile, nu versiunea publicată. Toate comenzile go rulate din director sau din subdirectoare țin cont de go.work.
go work init creează fișierul, go work use adaugă module (-r le caută recursiv), iar go work sync aliniază versiunile dependențelor comune în go.mod-urile modulelor. De obicei go.work nu se pune în git, pentru că descrie configurația locală a unui programator; GOWORK=off îl dezactivează temporar.
Parametri
| Parametru | Descriere |
|---|---|
init dir... |
Creează go.work cu modulele din directoarele date. |
use dir... |
Adaugă (sau, cu -r, caută) module. |
sync |
Sincronizează versiunile dependențelor între module. |
Exemple
Exemplul 1: Un workspace cu două module
ls
go work init ./magazin ./utile
cat go.work
go list -m
Rezultat în terminal
magazin utile
go 1.27.2
use (
./magazin
./utile
)
exemplu.ro/magazin
exemplu.ro/utile
Greșeli frecvente
- Commit-ul lui
go.workîntr-un proiect cu un singur modul: colegii primesc căi care nu există la ei. - Uitarea că
go.workeste activ: build-ul local merge, dar în CI (fărăgo.work) eșuează pentru că versiunea publicată a modulului nu are încă modificările.
Comenzi înrudite
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.