重要な注記
⚠️ この記事について
この記事は、筆者が実際に試行錯誤して作成した学習メモを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.tomlのinclude_ext設定を確認 - 除外設定(
exclude_dir)に対象ディレクトリが含まれていないか確認
まとめ
Airを使うことで、Go言語の開発効率が大幅に向上します。特に以下のような場面で威力を発揮します:
- Webアプリケーション開発: サーバーの自動再起動
- API開発: エンドポイントの変更を即座に反映
- 学習・プロトタイピング: 試行錯誤が高速化
一度設定すれば、快適な開発環境が手に入ります。ぜひ試してみてください!