デバッグメッセージの削除

前々から、Javascriptコードにconsole.logを埋め込みっぱなしなことを気にはしていたのだけれど、とうとうid:mirakuiさんから指摘されてしまったので、ちゃんと対策する。

実はjsjuicerを使うと、「;;;」で始まる行を削除できる。だから、こんな感じに書くことができる。

function foo($operand_a, $operand_b)
{
  // add $operand_a and $operand_b
  ;;; console.log('foo is called.');
  return $operand_a + $operand_b;
}

でも、各開発環境にjsjuicerをインストールするのは面倒なので、sedで実現する。

sed 's/;;;.*//' foo.js > bar.js

で、毎回これを入力するのは面倒なので、Makefileにする。せっかくなので、複数のファイルをひとつにまとめる機能もつけておく。

JS:=foo.js bar.js baz.js
TARGET:=xyzzy.js

$(TARGET): $(JS) Makefile
	cat $(JS) | sed 's/;;;.*//' > $@

clean:
	rm -rf $(TARGET) *~