コンパイラかく語りき

import { Fun } from 'programming'

【node.js】execでunixコマンドを実行する

Node.jsのお勉強です。

Nodeの標準パッケージのうち、chukd_processというものを使えば、unixコマンドが利用できると知ったのでメモ。

Child Process Node.js v0.11.11 Manual & Documentation

 

コマンド実行関数

ざっと見たところ、コマンドを実行できる関数は複数あります。

spawn, exec, execFileという3つですね。

それぞれの違いでググッて見ると、こんなタメになるポストが。

www.axlight.com

 

ちなみに、ドキュメントではこんな感じ。

f:id:chuck0523:20160403165258p:plain

コマンドは使いたいし、その結果を受け取ってコールバック関数を実行したい気がするのでexecを採用です。

 

exec

まずはお試しで使ってみます。

書いたコードがこちら。

gistb31f359b7e2cedb9f2cbd6930fe22aea

以前勉強したfs.watchと組み合わせました。

 

chuckwebtips.hatenablog.com

 

処理内容としては、同階層にあるindex.jsに変更が加えられたら、index.jsの中身を出力するというもの。

nodeで実行してみると、以下のとおり。

f:id:chuck0523:20160403170623p:plain

変更を加える度に、きちんと出力がなされています。

 

注意

今回はエラー処理を一切省きました。実際のコードでは、必要かもしれません。

 

次回は、watchとexecを利用して、コンパイルのwatch化をしてみます。