ファイルをセーブしたら、bashコマンドを走らせる」というライブラリを1行で作る。


「ファイルをセーブしたら、npmスクリプトを走らせる」というライブラリがある日突然欲しくなりました。

onchangeというライブラリが見つかりました。npmライブラリです。

使い方は簡単で、onchangeをグローバルにインストールした後、grobパターンで、監視するファイルとnpmスクリプトを記述するだけです。

npm install -g onchange
onchange 'app/**/*.js' 'test/**/*.js' -- npm test

しかしです...

globパターンを記述するのが地味に面倒い!
ルートフォルダ以下で変更があれば、npmスクリプトを走らせるだけでいいのに...

そこでよりシンプルなライブラリを自作することにしました

作ったのが「save-run」というライブラリ。

名前は、save-runとして、npmに登録してあります。
save-run

使い方は簡単で、npxを使用するまたはグローバルにインストールしてからrun-saveコマンドの後にnpmスクリプトを渡すだけ。

npx save-run npm test
または
npm install -g save-run
save-run npm test

幸せになれました〜〜〜

私は、react-nativeエンジニアなのですが、

save-run npm start
save-run python main.py

などに使っています。

実はこのライブラリは1行で実装されているので、興味のある方は読んでみてください。

#!/usr/bin/env node

const { watch } = require('chokidar')
const { execSync } = require('child_process')

watch('.').on('change', () => execSync(process.argv.slice(2).join(' '), { stdio: 'inherit' }))

完!