LoginSignup
6
5

More than 5 years have passed since last update.

CoffeeScriptやJavascriptで、console.logをminify時に消し去る&消し忘れテストコードに気付く方法

Last updated at Posted at 2015-06-11

半分ネタです

シェルスクリプトかまして消すと良いよ、がまあかなり良好な解ですが、それだと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']使ってたら? それ、悪意あるだろ! しばくといいですよ。

6
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
5