Zx
表示
Zxチュートリアル
[編集]Zxとは
[編集]Zxは、Google製のNode.jsベースのスクリプティングライブラリで、シェルスクリプトのような簡潔さとJavaScriptの柔軟性を組み合わせたツールです。
インストール
[編集]npmを使用してグローバルにインストール:
npm install -g zx
基本的な使用方法
[編集]スクリプトの作成
[編集]拡張子を.mjsとして、ファイルの先頭に特殊なシバン(shebang)を追加:
#!/usr/bin/env zx // JavaScriptコードを記述 await $`echo "Hello, Zx!"`
実行権限の付与
[編集]スクリプトに実行権限を付与:
chmod +x script.mjs
主な機能
[編集]コマンド実行
[編集]バッククォート構文でシェルコマンドを直接実行:
await $`ls -la` await $`git status`
変数展開
[編集]JavaScriptの変数をコマンドに埋め込み:
const folder = 'documents' await $`mkdir -p ${folder}`
パイプラインとリダイレクト
[編集]シェルと同様のパイプライン処理:
await $`cat file.txt | grep "error"` await $`echo "log" > output.log`
エラーハンドリング
[編集]コマンド実行のエラーを捕捉:
try { await $`command-that-might-fail` } catch (p) { console.log(`Exit code: ${p.exitCode}`) console.log(`Error: ${p.stderr}`) }
並列実行
[編集]複数のコマンドを並列に実行:
await Promise.all([ $`sleep 2 && echo "Task 1"`, $`sleep 1 && echo "Task 2"` ])
実践的な例
[編集]Webプロジェクトのデプロイメントスクリプト
[編集]#!/usr/bin/env zx const branch = 'main' const remote = 'origin' await $`git checkout ${branch}` await $`git pull ${remote} ${branch}` await $`npm run build` await $`rsync -avz dist/ user@server:/path/to/deploy`
ファイル処理
[編集]const files = await glob('./src/**/*.js') for (const file of files) { await $`prettier --write ${file}` }
注意点
[編集]- Node.js 16以降が必要
- 複雑なスクリプトには適さない
- 基本的なシェル操作に最適
関連リソース
[編集]まとめ
[編集]Zxは、シェルスクリプトの簡潔さとJavaScriptの柔軟性を融合させた、モダンなスクリプティングツールです。