2012年9月25日火曜日

ClosureLinterによる静的解析

前回の続き.

コーディング規約どうしよう, というお話.
CheckStyleをjavascript用に作り直したりと, 手が無いこともないわけだが何より

時間がない

OTL

なので, 割と軽めに導入できるものを所望.
するとそこに現れたのが表題の, Closure Linter.
どうやらこいつは, Google先生が決めた規約にのっとったチェックをしてくれるツールらしい.
from GoogleDevelopers

条件反射で飛びついた自分の前に現れたのは, コマンドラインから起動されるClosureLinter.

ま た . b a t か よ ( ゚д゚ )



と反射的に考えてしまった自分はだいぶ.batに染まっているようですorz

何はともあれ使い方まとめ.


Ⅰ. Closure linter使い方 -準備編

1. Pythonで動きます. Python2.7.3.exeでPythonをインストールします.(Ver.2.7の理由は2. で)以降はデフォのディレクトリにインストールしたとします.
Python:http://python.org/download/ 自分のマシンに合ったものをどうぞ.
2. easy_installするためにsetuptools-0.6c11.win32-py2.7.exeを使用します.このsetuptools(ryが2.7を最後に更新されていないため, それ以降のPythonでは使えません.(1. の理由)
setuptools:http://pypi.python.org/pypi/setuptools Downloadsから
3. easy_installします. C:\Python27\Scriptsでcmdを起動します.パスを通しておくと楽かも.てゆうかbat使いたいなら通しておこう
4. easy_install http://closure-linter.googlecode.com/files/closure_linter-latest.tar.gz と入力します. インストールが始まり, つらつらとメッセージが出てきます.
5. 準備完了

Ⅱ. Closure linter使い方 -実行編

1. パスは通しておきましょう. 環境変数のpathの末尾に;C:\Python27\Scriptsを追加します.(cmdでpathと打ってみてちゃんと出てくることを確認しましょう.)
2. 早速解析しましょう. cmdを開き, gjslint 解析したい.jsのパス と入力します.
3. 成功していれば結果がコンソールに出ます.
4. パスのファイル名の部分を *.jsと置くと, そのディレクトリの.jsを順に全て解析してくれます.日本語にはならないみたいです(・ω・`)
5. 特別な.jsは他においておきましょう.一生懸命解析してダメだししてくれます. 正直鬱陶しいです. よけてくれる設定もあるらしいけど…

Ⅲ. Closure linter使い方 -.bat利用編


A. とりあえず修正するところを出力してくれるbat.
gjslint 解析したい.jsのパス > 結果を出力したい.txtなどへのパス
"解析したい.jsのパス"ディレクトリにある.jsを全てチェックし, その様子を"結果を出力したい.txtなどへのパス"に書き出してくれる. あくまで結果を教えてくれるだけ.直すのは自分で.(・д・`)
このままだと上書きするので, 過去ログ残したい!とか思うなら > を >> に置き換える. ファイル容量には注意. あくまで自己責任で.
ちなみに > はcmdのコマンド. Closure Linter とは関係ないので > 以下は無くてもOK. ただし結果がcmd上にしか出ないので出力してもらったほうが何かと便利.


B. コマンドで直せるものは直してもらうbat
copy  解析したい.jsのパス  C:\js_copy\ 
gjslint  解析したい.jsのパス  > 結果を出力したい.txtなどへのパス 
fixjsstyle 解析したい.jsのパス

1行目 とりあえず退避. "解析したい.jsのパス"にある全ての.jsをC:\js_copyにコピーする.
2行目 これは同じ. 解析結果の書き出し.
3行目 fixjsstyleのコマンドで, 直せるものは全部直してくれる. ただ改行とか空白とかは直してくれない. ; の打ち忘れなんかはやってくれる. あまり当てにしてはいけない.

なんかⅡとⅢを分ける必要なかった気がしたけど







まぁいっか+(・ω・0)*


Ⅳ. Closure linter使い方 -おまけ

→Closure linterがツッコミを入れる内容について書いてある. なにが突っ込まれるかチェックしたり, 突っ込まれた内容の確認にどうぞ

0 件のコメント:

コメントを投稿

AWS CDKで立てたEC2インスタンスのTimeZoneとかいじりたかった話

EC2を立てることはできたけど、立てたインスタンスは UTCのままだし設定ファイルとかいちいちscpしてくるのはダルい。 当初UserDataでなんとかしようとしたものの、「書く量がヤバいしメンテしにくい」と悩んでいたところ見かけたのが  AWS::CloudFormation:...