บันทึกการย้ายตัวจัดการ library/dependency ของระบบงาน
ที่พัฒนาด้วยถาษา Go จาก dep มายัง Go module ไว้นิดหน่อย 
การย้ายนั้นไม่ยากเท่าไร
มีขั้นตอนดังนี้

  • go mod init จะทำการ import library ต่าง ๆ จากไฟล์ Gopkg.lock มาให้แบบอัตโนมัติ
  • go mod tidy   ทำการลบ library/dependency ต่าง ๆ ที่ไม่ได้ใช้งานออกไป
  • rm -rf vendor  ทำการลบ folder vendor ทิ้งไป เพราะว่าไม่ต้องใช้งานแล้ว
  • go build  ทำการ run build เพื่อทำให้มั่นใจว่าทุกอย่างยังปกติสุข
  • ลบไฟล์ config ของ dep ทิ้งไป เช่น .lock และ toml เป็นต้น

มาดูรายละเอียดกันนิดหน่อย เพราะว่า ทำจริง ๆ มันไม่ง่ายตามขั้นตอน

เริ่มด้วยการย้าย code จาก $GOPATH/src ไปที่ใหม่ก่อน
ยกตัวอย่างเช่นไปที่ /work เป็นต้น

ใน /work นั้นจะมี code ของ project เรา
รวมทั้ง directory /vendor ด้วย
รวมไปถึงไฟล์ Gopkg.lock และ Gopkg.toml
จากนั้นจึงทำการ run คำสั่ง

$go mod init example
go: creating new go.mod: module .
go: copying requirements from Gopkg.lock

จะทำการสร้างไฟล์ go.mod ขึ้นมา
โดยจะทำการ import library/dependency ต่าง ๆ
มาจากไฟล์ Gopkg.lock ให้ด้วย

จากนั้นทำการลบสิ่งที่ไม่ได้ใช้ตามขั้นตอน
ทำการ build ด้วยคำสั่ง

$go build example
go: downloading github.com/gorilla/mux v1.7.0
go: extracting github.com/gorilla/mux v1.7.0

เพียงเท่านี้ก็ย้ายได้แล้วนะ
ขอให้สนุกกกับการ coding ครับ

Tags: