在進行多個Go專案開發時,我們經常會遇到一些困擾,尤其是當我們嘗試在VSCode中同時打開一個包含多個Go專案的目錄時。這時候,你可能會遇到以下錯誤訊息:
錯誤
gopls requires a module at the root of your workspace.
You can work with multiple modules by opening each one as a workspace folder.
Improvements to this workflow will be coming soon (https://github.com/golang/go/issues/32394),
and you can learn more here: https://github.com/golang/go/issues/36899.
從Go 1.18版本開始,原生支持多模塊工作區,這是通過在父目錄中具有一個go.work文件來實現的。
假設我們有這樣的目錄結構:
/parent
├── proj1
│ ├── go.mod
│ ├── hello-world.go
└── proj2
├── go.mod
├── slices.go
我們可以通過執行以下命令來創建並填充go.work文件:
cd parent
go work init
go work use proj1
go work use proj
2
這將在您的父目錄中添加一個go.work文件,其中包含您標記為使用的目錄列表:
go 1.18
use (
./proj1
./proj2
)
通過這種方式,我們就能夠在VSCode中輕鬆地管理和切換不同的Go專案,而無需擔心模塊相關的問題。