Golangのnet/httpでホットリロードの恩恵を受けたい
ホットリロードが欲しい 普段メインでreactとかAngularを使用しているので、標準でホットリロードが搭載されていることが当然になっていた。 しかしGoのnet/httpにはない。これが本当に開発体験に悪影響を及ぼしている。 ということで、何とかできないか調べてみた。 Goのバージョン go => 1.21.4 DevContainerを使ってみる Go net/httpサーバーのホットリロードにAirを使ってみた Devcontainerに airをインストールして、DevContainer上で実行する。 色々調べた結果上記が1番楽そうだったので、やってみる。 やり方は上記の記事を引用する。 リポジトリ直下に .devcontainer フォルダ作成 .devcontainerフォルダ内に 下記内容のdevcontainer.json を作成。 { "name": "Go", "image": "mcr.microsoft.com/devcontainers/go:0-1-bullseye", "features": { "ghcr.io/devcontainers/features/docker-outside-of-docker:1": { "moby": true, "installDockerBuildx": true, "version": "latest", "dockerDashComposeVersion": "v2" } }, "postCreateCommand": "go install github.com/cosmtrek/air@latest" } 保存し、プロジェクトを再度開き直す DevContainerを開くかどうかVSCodeに確認されるので、DevContainerとして開き直す インストール完了後 プロンプト上で air と打って Airを立ち上げる 順序通りやったところ、 DevContainerを開くかどうかVSCodeに確認されるので、DevContainerとして開き直す の箇所で、 [+] Building 903.3s (2/3) => [internal] load build definition from Dockerfile.extended 0.3s => => transferring dockerfile: 2....