Lambdaカクテル

京都在住Webエンジニアの日記です

Invite link for Scalaわいわいランド

Rustでnpm watchっぽいことをやるにはcargo-watchが便利

npmにはwatchする文化があって、ファイル変更を検知して自動ビルドなどを走らせたりできる。

www.npmjs.com

Rustにも似たような機能が欲しい。というのも、趣味でWebアプリケーションを書いているので、コードの修正を検知して勝手にサーバを再起動させたいからだ。

調べたところcargoのプラグインでcargo-watchというのがあり、うまく動いたのでメモ。もしうまくいかなかったら、OMakeを使うつもりだった。

インストール

cargoを使ってインストールできる。

cargo install cargo-watch

使う

cargo watchが基本的な使い方で、いろいろオプションをつけることで活用できる。

変更を検知してcargo checkする

デフォルトの挙動なのでcargo watchと書くだけでよい。

cargo watch

ビルドする

-xオプションを使う。任意のcargoサブコマンドを実行できる。

cargo watch -x build

任意のシェルコマンドを実行する

-- を使う。

cargo watch -- echo "Hello World"

任意のシェルコマンドを実行するその2

-sを使うと&&とかを便利に表現できる。

cargo watch -s 'cargo build && ./target/debug/foobar'

Webサーバを実装しているときに非常に便利である。

コマンド動作までのディレイを設定する

デフォルトでは、ファイル変更検知から0.5秒後にコマンドが実行される。この挙動は-dで制御できる。

cargo watch -d 10 -x build
★記事をRTしてもらえると喜びます
Webアプリケーション開発関連の記事を投稿しています.読者になってみませんか?