【Node.js24.x】Object::spawnSync()メソッドの使い方
spawnSyncメソッドの使い方について、初心者にもわかりやすく解説します。
基本的な使い方
spawnSyncメソッドは、指定されたコマンドを同期的に新しいプロセスとして実行するメソッドです。このメソッドを使用すると、Node.jsの現在のプロセスは、新しいプロセスが完全に終了するまで待機します。例えば、システムコマンドや外部スクリプトを実行し、その結果をNode.jsプロセスで受け取りたい場合に利用できます。
このメソッドは、実行するコマンドとその引数を指定して呼び出します。コマンドの標準出力(stdout)や標準エラー出力(stderr)、終了コード(status)などの実行結果は、戻り値のオブジェクトとして提供されます。これにより、外部プロセスの実行が成功したか、どのような出力があったかを簡単に確認できます。
同期処理のため、外部プロセスの実行中はNode.jsプロセスが完全にブロックされ、他の処理を実行できません。そのため、I/O処理や時間のかかる操作を行う外部プロセスを実行する場合には、アプリケーション全体のパフォーマンスに影響を与える可能性があります。簡単なコマンドの実行や、起動時に一度だけ外部プロセスを実行して結果を取得するようなシンプルなシナリオに適しています。非同期で外部プロセスを実行したい場合は、spawnメソッドなどの利用を検討してください。
構文(syntax)
1const { spawnSync } = require('child_process'); 2const childProcessResult = spawnSync('command_name', ['argument1', 'argument2'], { cwd: '/path/to/directory', shell: true });
引数(parameters)
command, args = [], options = {}
- command: string: 実行するコマンドのパスまたはコマンド名
- args: string[]: コマンドに渡す引数の配列
- options: object = {}: プロセス実行時のオプションを指定するオブジェクト
戻り値(return)
ChildProcessSyncResult
spawnSync メソッドは、指定されたコマンドを子プロセスとして同期的に実行し、その結果を ChildProcessSyncResult オブジェクトとして返します。このオブジェクトには、子プロセスの終了コード、標準出力、標準エラー出力などが含まれます。