{
  "$type": "site.standard.document",
  "canonicalUrl": "https://blog.nove-b.dev//posts/golang-hotreload-by-devcontainer",
  "description": "Golangのnet/httpでホットリロードしたい",
  "path": "/posts/golang-hotreload-by-devcontainer",
  "publishedAt": "2024-03-08T15:34:10.000Z",
  "site": "at://did:plc:2atly2y5kfyjcj5zap6pv4wd/site.standard.publication/3mmxeqr2tcb2k",
  "tags": [
    "golang"
  ],
  "textContent": "ホットリロードが欲しい\n\n普段メインでreactとかAngularを使用しているので、標準でホットリロードが搭載されていることが当然になっていた。\n\nしかしGoのnet/httpにはない。これが本当に開発体験に悪影響を及ぼしている。\n\nということで、何とかできないか調べてみた。\n\nGoのバージョン\n\nDevContainerを使ってみる\n\nGo net/httpサーバーのホットリロードにAirを使ってみた\n\n> Devcontainerに airをインストールして、DevContainer上で実行する。\n\n色々調べた結果上記が1番楽そうだったので、やってみる。\n\nやり方は上記の記事を引用する。\n\n> - リポジトリ直下に .devcontainer フォルダ作成\n> - .devcontainerフォルダ内に 下記内容のdevcontainer.json を作成。\n>\n> \n>\n> - 保存し、プロジェクトを再度開き直す\n> - DevContainerを開くかどうかVSCodeに確認されるので、DevContainerとして開き直す\n> - インストール完了後 プロンプト上で air と打って Airを立ち上げる\n\n順序通りやったところ、\n\n> DevContainerを開くかどうかVSCodeに確認されるので、DevContainerとして開き直す\n\nの箇所で、\n\n上記のようにとんでもなく時間がかかった結果諦めた。\n\nこれはWindowsとDocker問題🤔?\n\nWSLで再トライ\n\nということでWSL上に移して実行してみる。\n\nWindows上で実行するよりは早いけど、それでもめちゃくちゃ時間がかかった。\n\nで、実行してみたところ\n\nというエラーが出たので、バージョンをgo 1.21.4からgo 1.21に変更し再度挑戦してみる。\n\nホットリロードは確認できたけど...\n\n次に上記エラーが出たので、main.goを/srcからrootに移動した結果、ホットリロードが動いていることが確認できた。\n\nただデーターベースに接続できなくなったし、やっぱり/srcの下に開発ファイルを置きたい。\n\nここで時間使うのももったいないので、いったん諦める。戦略的撤退。\n\nホットリロードが動くことは確認できたので、とりあえず満足した。\n\nいつかまた挑戦する。",
  "title": "Golangのnet/httpでホットリロードの恩恵を受けたい"
}