zx - より手軽にNodejs用のスクリプトを書くためのツール
nodeを使ってCLIで動くツールを作っている人は多いでしょう。そんな時、デフォルトのnodeでは不便なことも多いです。ルートでasync/awaitが使えなかったり、コマンドを実行して、その結果を受け取るのも面倒です。 そこで使ってみたいのがzxです。Google製のコマンド実行ソフトウェアです。
zxの使い方
サンプルコードです。ルートでasync/awaitを使っています。
#!/usr/bin/env zx
await $`cat package.json | grep name`
let branch = await $`git branch --show-current`
await Promise.all([
$`sleep 1; echo 1`,
$`sleep 2; echo 2`,
$`sleep 3; echo 3`,
])
let name = 'foo bar'
await $`mkdir /tmp/${name}`
実行します。実行権限を付ければ、zxを付ける必要はありません。
$ ./test.mjs
$ cat package.json | grep name
"name": "0510",
$ git branch --show-current
master
$ sleep 1; echo 1
$ sleep 2; echo 2
$ sleep 3; echo 3
1
2
3
$ mkdir /tmp/'foo bar'
zxが用意しているのは$`` でコマンド実行をしたり、cd/fetchなどです。questionというコマンドで、ユーザの入力を待つこともできます。コマンドを実行して、その結果を待ってから別な処理を実行することも容易でしょう。
zxはJavaScript製のオープンソース・ソフトウェア(Apache Licnese 2.0)です。