Go 1.16 ออกมาแล้ว ขอสรุปสรุปการเปลี่ยนแปลงที่เกียวข้องกับ Module ดังนี้:
- Module Mode จะถูกเปิดเป็นค่า Default
โดยเราสามารถปิดมันได้ ถ้ายังมี Project ที่ยังไม่ได้ใช้ Module (ยังใช้ GOPATH Mode อยู่) ด้วยคำสั่งgo env -w GO111MODULE=auto
แต่… ตั้งแต่ Go 1.17 เป็นต้นไปจะไม่ Support GOPATH Mode อีกแล้ว แปลว่าเราควร Migrate ไปใช้ Module Mode ได้แล้ว go.mod
กับgo.sum
จะไม่ถูกอัพเดทโดยอัตโนมัติแล้ว
เช่น เวลาเราใช้คำสั่งgo run
หรือgo build
แล้วมี Module ที่ใช้แต่ไม่ได้ Require ไว้ มันจะไม่ถูกอัพเดทในgo.mod
ให้โดยอัตโนมัติ แสดงว่าเราจะต้องแก้ไขไฟล์go.mod
เองหรือไม่ก็ต้องใช้คำสั่งgo get
เองgo install
สามารถระบุ Version ได้แล้ว
เช่นgo install golang.org/x/tools/gopls@v0.6.5
- เราสามารถถอน Module Version ที่เราไม่ต้องการได้ รายละเอียด
- เราสามารถใช้ GOVCS เพื่อกำหนดว่า Moduule ไหนจะถูกโหลดจาก VCS อะไร เช่น
เช่นGOVCS=github.com:git,evil.com:off,*:git|hg