You are currently viewing Visual Studio Codeで複数のGoプロジェクトをワークスペースに追加するとimportがおかしくなる

Visual Studio Codeで複数のGoプロジェクトをワークスペースに追加するとimportがおかしくなる

タイトルが長いですが、状況は以下の通り
・Visual Studio Codeでワークスペースに複数のGoプロジェクトを追加している
・importでパッケージが読み込めず、赤いエラーが表示されている
・ビルド自体は行うことができ、プログラムは正常に動作する

Go 1.18以降であれば、workspaceモードを利用する

VS Codeの拡張機能「gopls」の公式ヘルプでは以下の解決策が提示されていました
https://github.com/golang/tools/blob/master/gopls/doc/workspace.md

Go 1.18以降であればworkspaceモードを利用することで上記の現象は回避できるとのこと
早速設定してみます

今回のディレクトリ構成について

現在作成しているアプリは以下のようなディレクトリ構成になっています

RIDEという親ディレクトリがあり、その下にマイクロサービスごとにディレクトリを作成し、マイクロサービスごとにgo.modが存在している状態です

ターミナルで「RIDE」ディレクトリ配下に移動し、以下のコマンドを実行

go work init
go work use ./RIDE-Rider 
go work use ./RIDE-Content 

go.workファイルは以下の様になりました

go 1.20

use (
	./RIDE-Content
	./RIDE-Rider
)

VS Codeの状態を確認してみる

importセクションのエラーが消え、パスを正しく認識していることが確認できました

コード補完も正しく動作するようになりました。これで開発効率も上がりそうです

以上

ということで、VS CodeでGoを利用した開発を行う時に発生した問題についての解決方法を紹介させていただきました。
VS Codeのワークスペースで複数プロジェクトを管理できたほうが開発も行いやすくなりますが、Goでimportを正しく認識しなくなる問題に悩まされていました
今回Goのworkspaceモードを利用することで解決できることがわかりました

同じような問題で悩んでいる方がいたら、この情報が役に立てれば幸いです

コメントを残す