Golangのnet/httpでホットリロードの恩恵を受けたい
nove-b
March 8, 2024
ホットリロードが欲しい
普段メインでreactとかAngularを使用しているので、標準でホットリロードが搭載されていることが当然になっていた。
しかしGoのnet/httpにはない。これが本当に開発体験に悪影響を及ぼしている。
ということで、何とかできないか調べてみた。
Goのバージョン
DevContainerを使ってみる
Go net/httpサーバーのホットリロードにAirを使ってみた
> Devcontainerに airをインストールして、DevContainer上で実行する。
色々調べた結果上記が1番楽そうだったので、やってみる。
やり方は上記の記事を引用する。
> - リポジトリ直下に .devcontainer フォルダ作成
> - .devcontainerフォルダ内に 下記内容のdevcontainer.json を作成。
>
>
>
> - 保存し、プロジェクトを再度開き直す
> - DevContainerを開くかどうかVSCodeに確認されるので、DevContainerとして開き直す
> - インストール完了後 プロンプト上で air と打って Airを立ち上げる
順序通りやったところ、
> DevContainerを開くかどうかVSCodeに確認されるので、DevContainerとして開き直す
の箇所で、
上記のようにとんでもなく時間がかかった結果諦めた。
これはWindowsとDocker問題🤔?
WSLで再トライ
ということでWSL上に移して実行してみる。
Windows上で実行するよりは早いけど、それでもめちゃくちゃ時間がかかった。
で、実行してみたところ
というエラーが出たので、バージョンをgo 1.21.4からgo 1.21に変更し再度挑戦してみる。
ホットリロードは確認できたけど...
次に上記エラーが出たので、main.goを/srcからrootに移動した結果、ホットリロードが動いていることが確認できた。
ただデーターベースに接続できなくなったし、やっぱり/srcの下に開発ファイルを置きたい。
ここで時間使うのももったいないので、いったん諦める。戦略的撤退。
ホットリロードが動くことは確認できたので、とりあえず満足した。
いつかまた挑戦する。
Discussion in the ATmosphere