4
9

開発効率爆上がり!Go言語×Airでホットリロードを超簡単設定

Posted at

Air を使ったGo言語のホットリロード設定ガイド

こんにちは!今回はGo言語での開発をもっと効率よくするために、Airというツールを使ってホットリロードの環境を整える方法を紹介します。開発中にコードを編集するたびに、毎回手動でアプリケーションを再起動するのは手間ですよね。そんなときに便利なのが、このAirなんです!Airを使えば、コードの変更を自動で検知してアプリケーションを再起動してくれるので、開発がかなりスムーズになります。

DMMさんのインターンでこのツールを教えていただき、早速自分のプロジェクトにも導入してみましたが、設定がとても簡単だったので投稿いたします!(初心者🔰の記事ですので温かい目で見ていただけると嬉しいです:bow:

ホットリロードとは?

ホットリロードとは、コードを変更したときに自動でアプリケーションを再コンパイルして再起動する機能のことです。これによって、変更が即座に反映されるので、毎回手動で再起動する手間が省けて、作業効率がグッと上がります!

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言語の開発がきっと快適になるはずです :star2:。ぜひ、試してみてください。

Airは開発環境でのみ使用し、本番環境では使用しないようにします。

4
9
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
4
9