半分ネタです
シェルスクリプトかまして消すと良いよ、がまあかなり良好な解ですが、それだとconsole.logの前後にテストコードがあった時、そして、それをif DEBUG?とかで囲むのを忘れていた時、気付くチャンスを逃してしまいます。
たぶん世の中で良く行われているものとしては、if DEBUG?節でテストコードを囲んで、minify時に --define DEBUG=null
を付けるというのがあるかと思いますが、落とし穴があるよということです。
DEBUG=nullで消えるのは、あくまで「if DEBUG?節を付け忘れなかった場合」です。
そこで併用をお勧めしたいのがconsole=nullをやってしまうことです。
uglifyjs test.js -m -c -d console=null,DEBUG=null
こんな感じ。DEBUGの影響下に無いテストコードが残ってしまっていたら、そこにはたいていconsoleのメソッドが使われているはずですので、これでエラーが引き起こせます。minify後に、エラーのみを指摘してくれるquietモードのあるlintを通すとかすれば、null.log
を指摘してくれるでしょう。実行時エラーではあるけど、スクリプトのパーズ時にもうエラーが発生するから、拾いようはいくらだってありますよね。
誰かがwindow.console使ってたら? すみません、それはもう一工夫要りますね。
誰かがwindow['console']使ってたら? それ、悪意あるだろ! しばくといいですよ。