Showing posts with label VScode. Show all posts
Showing posts with label VScode. Show all posts

Tuesday, August 29, 2023

[Golang] 在VSCode中管理多個Go專案 Go 1.18+

在進行多個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專案,而無需擔心模塊相關的問題。