0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Go言語でホットリロード環境を構築する方法【Air使用】

Last updated at Posted at 2025-05-29

重要な注記

⚠️ この記事について

この記事は、筆者が実際に試行錯誤して作成した学習メモをAIを活用して読みやすく記事化したものです。

ご利用時の注意点:

  • 内容は筆者の環境(特定のOS・Go版本・ターミナル環境)で動作確認したものです
  • お使いの環境によっては正常に動作しない可能性があります
  • 環境差異による問題が発生した場合は、公式ドキュメントもご確認ください
  • 参考程度にご利用いただき、実際の導入前には十分な検証をお願いします

技術的な質問や改善点があれば、コメントでお気軽にお声かけください!

はじめに

Go言語で開発していると、コードを修正するたびにgo run main.goを実行するのは非効率ですよね。特に大きなプロジェクトになると、ビルド時間も長くなり開発効率が大幅に低下してしまいます。

そこで今回は、Airというツールを使ってGo言語でホットリロード環境を構築していきます。

更新履歴

【 2025/05/30 】環境変数を一部削除

環境

  • OS: Ubuntu 24.10 x86_64
  • CPU: AMD Ryzen 7 5700X (16) @ 4.663GHz
  • GPU: NVIDIA GeForce RTX 3060
  • Memory: 40GB

Airとは?

Airは、Go言語用のライブリロード(ホットリロード)ツールです。ファイルの変更を監視し、自動的にアプリケーションを再ビルド・再実行してくれます。

主な特徴

  • ファイル変更の自動検知
  • 高速な再ビルド
  • 設定のカスタマイズが可能
  • 軽量で使いやすい

GitHub: air-verse/air

環境構築手順

1. Airのインストール

まず、Airをインストールします。

go install github.com/air-verse/air@latest

2. インストール確認

Airが正しくインストールされたか確認してみましょう。

air -v

この時点では、おそらくcommand not foundのようなエラーが表示されると思います。これは環境変数の設定が必要なためです。

3. 環境変数とエイリアスの設定

Airのコマンドが認識されない場合は、環境変数の設定が必要です。

~/.bashrc または ~/.zshrc に以下を追加:

export GOPATH=$HOME/go
export PATH=$PATH:$GOPATH/bin
export PATH=$PATH:$(go env GOPATH)/bin
alias air="$(go env GOPATH)/bin/air"

設定を反映させるため、ターミナルを再起動するか以下を実行:

source ~/.bashrc  # または source ~/.zshrc

4. 再度インストール確認

環境変数設定後、再度Airのバージョンを確認します。

air -v

バージョン情報が表示されれば設定完了です!

5. プロジェクトでの初期設定

開発中のGoプロジェクトディレクトリに移動します。

cd /path/to/your/go/project

Airの設定ファイルを生成します。

air init

これにより、.air.tomlという設定ファイルが生成されます。

6. ホットリロードの実行

設定が完了したら、以下のコマンドでホットリロードを開始します。

air

これでファイルを編集・保存するたびに、自動的にアプリケーションが再ビルド・再実行されます!

.air.tomlの設定例

生成された.air.tomlファイルをカスタマイズすることで、より細かい制御が可能です。

# 基本設定
root = "."
testdata_dir = "testdata"
tmp_dir = "tmp"

[build]
# ビルドコマンド
cmd = "go build -o ./tmp/main ."
# 実行ファイル
bin = "tmp/main"
# 監視対象の拡張子
include_ext = ["go", "tpl", "tmpl", "html"]
# 除外するファイル
exclude_file = []
# 除外するディレクトリ
exclude_dir = ["assets", "tmp", "vendor", "testdata"]
# 遅延時間(ミリ秒)
delay = 1000

[log]
# ログの出力時刻を表示
time = true

[color]
# カラー出力を有効化
main = "magenta"
watcher = "cyan"
build = "yellow"
runner = "green"

トラブルシューティング

よくある問題と解決法

1. air: command not foundエラー

  • 環境変数の設定を確認
  • ターミナルの再起動
  • go env GOPATHでパスを確認

2. ビルドエラーが発生する

  • プロジェクトのgo.modファイルが存在するか確認
  • 依存関係が正しくインストールされているか確認

3. ファイル変更が検知されない

  • .air.tomlinclude_ext設定を確認
  • 除外設定(exclude_dir)に対象ディレクトリが含まれていないか確認

まとめ

Airを使うことで、Go言語の開発効率が大幅に向上します。特に以下のような場面で威力を発揮します:

  • Webアプリケーション開発: サーバーの自動再起動
  • API開発: エンドポイントの変更を即座に反映
  • 学習・プロトタイピング: 試行錯誤が高速化

一度設定すれば、快適な開発環境が手に入ります。ぜひ試してみてください!

参考リンク


0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?