การใช้งาน Multi-Modules ต่อ Workspace ใน VS Codeและ วิธีการแก้ปัญหา You are outside of a module and outside of $GOPATH/src
2022-03-19
จากที่ลองทำตาม Tutorial ในการ import Go Module ใน Official Docs
- Create a module -- Write a small module with functions you can call from another module.
- Call your code from another module -- Import and use your new module.
มี Project Structure
.
├── greetings
│ ├── go.mod
│ └── greetings.go
└── hello
├── go.mod
└── hello.go
จากนั้น Vs Code ก็แจ้ง Error ว่า "Error loading workspace: You are outside of a module and outside of $GOPATH/src."
Solution
จากที่ไปอ่านมา ตัว gopls
ซึ่งเป็น libs ที่ช่วยในพวก Editor ต่างๆ พบว่า ถ้าเป็น Go 1.17 ลงไปจะสามารถเปิดได้แค่ 1 module/workspace เท่านั้น
พอลองเปิดแยก Module ก็พบว่าจริงไม่ Error แล้ว
ถ้าเราจะใช้งานหลาย Modules พร้อมกันใน 1 Workspace เราควรใช้ Go 1.18
พออัพเกรดไป go 1.18 ก็ใช้งานได้แล้ว
Ref:
https://github.com/golang/go/issues/45015#issuecomment-802556434