Air
を使ったGo言語のホットリロード設定ガイド
こんにちは!今回はGo言語での開発をもっと効率よくするために、Air
というツールを使ってホットリロードの環境を整える方法を紹介します。開発中にコードを編集するたびに、毎回手動でアプリケーションを再起動するのは手間ですよね。そんなときに便利なのが、このAir
なんです!Air
を使えば、コードの変更を自動で検知してアプリケーションを再起動してくれるので、開発がかなりスムーズになります。
DMMさんのインターンでこのツールを教えていただき、早速自分のプロジェクトにも導入してみましたが、設定がとても簡単だったので投稿いたします!(初心者🔰の記事ですので温かい目で見ていただけると嬉しいです)
ホットリロードとは?
ホットリロードとは、コードを変更したときに自動でアプリケーションを再コンパイルして再起動する機能のことです。これによって、変更が即座に反映されるので、毎回手動で再起動する手間が省けて、作業効率がグッと上がります!
1. Air
のインストール
まずは、Air
をインストールしましょう!インストールの前に、使用しているGoのバージョンが1.17以上であることを確認してください。
go version
次に、以下のコマンドをターミナルで実行してAir
をインストールします。
go install github.com/air-verse/air@latest
インストールが終わったら、air
コマンドが正しく使えるか確認してみましょう。
which air
# 出力例: /Users/username/go/bin/air
もしgo/bin
ディレクトリがPATH
に入っていなかったら、次のコマンドを使って設定を追加してください。
export PATH=$PATH:$(go env GOPATH)/bin
2. 設定ファイルを作成
Air
のインストールが完了したら、次は設定ファイルを作成します。プロジェクトのルートディレクトリで以下のコマンドを実行して、.air.toml
という設定ファイルを生成しましょう。
air init
これでプロジェクトのルートに.air.toml
ファイルが作成されます。
3. 設定ファイルの内容を確認
生成された.air.toml
ファイルの内容をチェックしましょう。この設定ファイルは、Air
の動作を細かくカスタマイズするためのものです。
以下は、デフォルトで生成される.air.toml
の一部です:
# .air.toml
root = "." # プロジェクトのルートディレクトリ
testdata_dir = "testdata" # テストデータ用ディレクトリの指定
tmp_dir = "tmp" # 一時的なファイルを保存するディレクトリ
[build]
bin = "./tmp/main" # ビルドされたバイナリの出力先
cmd = "go build -o ./tmp/main ." # 実行するビルドコマンド
exclude_dir = ["assets", "tmp", "vendor", "testdata"] # 監視から除外するディレクトリ
include_ext = ["go", "tpl", "tmpl", "html"] # 監視するファイルの拡張子
log = "build-errors.log" # ビルドエラーログの出力ファイル
stop_on_error = false # エラー発生時にビルドを停止するかどうか
[log]
time = false # ログにタイムスタンプを追加するかどうか
[misc]
clean_on_exit = false # 終了時に一時ファイルを削除するかどうか
この設定ファイルでは、Air
がどのファイルを監視するか、どのファイルを無視するかなどを指定しています。デフォルトの設定で十分にホットリロードの機能を活用できますが、要件に応じてカスタマイズすることも可能です。
たとえば、もし、Makefile
でビルドを管理している場合、以下の様に設定できます。
(Makefile に build ターゲットが正しく定義されていることが前提です。)
[build]
cmd = "make build"
この設定では、Makefile
を使ってビルドコマンドを実行します。Air
がソースコードの変更を検知すると、自動的にmake build
コマンドを実行し、指定されたバイナリを生成します。これにより、ビルドプロセスが自動化され、より効率的な開発環境を整えることができます。
公式の設定ファイルは、こちらで確認できます。
4. 動作確認
Air
を使ってアプリケーションを起動してみましょう。ターミナルで以下のコマンドを実行します。
air
ターミナルに以下のようなメッセージが表示されれば成功です!
__ _ ___
/ /\ | | | |_)
/_/--\ |_| |_| \_ v1.52.3, built with Go go1.22.6
watching .
building...
running...
この状態でコードに変更を加えると、Air
が自動でホットリロードしてくれます。
これで、Go言語の開発がきっと快適になるはずです 。ぜひ、試してみてください。
※Air
は開発環境でのみ使用し、本番環境では使用しないようにします。