Tips

全ての .go ファイルの変更を監視してテストを実行

`entr` は、指定したファイルが変更されたときに、任意のコマンドを自動的に実行するためのシンプルで強力なツールです。開発中にコードの変更を検知し、テストの実行、コンパイル、サーバーの再起動などを自動化することで、作業の効率を大幅に向上させます。

技術・言語・ツール: entr

entr は、指定したファイルが変更されたときに、任意のコマンドを自動的に実行するためのシンプルで強力なツールです。開発中にコードの変更を検知し、テストの実行、コンパイル、サーバーの再起動などを自動化することで、作業の効率を大幅に向上させます。

ファイル変更を検知してコマンドを自動実行!開発を爆速化する entr

開発中にファイルを保存するたびに、手動でテストを実行したり、ビルドコマンドを叩いたりしていませんか? entr を使えば、特定のファイルやディレクトリ内の変更を監視し、変更が検知された瞬間に指定のコマンドを自動で実行できます。これにより、開発のサイクルを短縮し、より迅速なフィードバックループを実現できます。

# 全ての .go ファイルの変更を監視してテストを実行
ls *.go | entr go test -v

# 現在のディレクトリ以下の .js ファイルの変更を監視してLinterを実行
find . -name "*.js" | entr eslint .

# 特定のファイル変更時にHTTPサーバーを再起動(Node.jsの例)
# -r オプションは、entrがコマンドを再実行する前に現在のプロセスを終了させるために使います。
ls server.js | entr -r node server.js

注意点やおすすめポイント

  • インストールが簡単: 多くのOSのパッケージマネージャーで簡単にインストールできます(例: brew install entr for macOS, sudo apt-get install entr for Ubuntu)。
  • パイプで入力を受け取る: find, ls, git ls-files など、ファイルリストを出力するコマンドと組み合わせて使うのが一般的です。
  • 柔軟なコマンド実行: テスト、コンパイル、リロード、コード生成など、どんなコマンドでも実行可能です。
  • 開発効率アップ: 手動でのコマンド実行を減らし、リアルタイムに近いフィードバックを得ることで、開発体験が大きく向上します。特にテスト駆動開発 (TDD) や継続的インテグレーションのローカル版として非常に有効です。