zx
概要
インストール
code:shell
# pnpm
$ pnpm add -D zx
# npm
$ npm install --save-dev zx
基本的な使い方
*.mjs形式のファイルにスクリプトを記述します
code:script.mjs
// $...によってコマンドを実行
// await $...の戻り値としてCommandOutputオブジェクトが返却されます
const output = await $cat package.json | jq .devDependencies;
// echo...で標準出力へメッセージを出力できます
// echo...にはCommandOutputを渡すこともできます
echoResult: ${output};
その後、以下のコマンドでスクリプトを実行できます
code:shell
$ pnpm exec zx script.mjs
API
ProcessPromise
$によって返却されます
.pipe()メソッドを使うと、標準出力をWritable(node:stream)へリダイレクトされることができます code:javascript
import { createWriteStream } from "node:fs";
await $cat package.json | jq .devDependencies.pipe(createWriteStream("deps.txt"));
// ProcessPromiseをpipeすることも可能です
const result = await $cat package.json.pipe($jq .devDependencies);
echo(result);
stdin/stdoutなどのプロパティから、サブプロセスの標準入出力へアクセスできます (これらのプロパティはnode:streamのStreamです) code:javascript
const json = await res.json();
code:shell
$ pnpm exec zx --repl
# REPLの起動後、コマンドの実行などが行えます
❯ await $cat package.json | jq .devDependencies
リンク