読者です 読者をやめる 読者になる 読者になる

ソフトウェアエンジニアのブログ

暇つぶしに書いてます。他に技術的なことは[http://qiita.com/nsas454]に書いてますのでそちらも見てください。

google製javascript文法チェッカー、ClosureLinterをインストール

グーグルのJavaScriptコードのスタイルガイドに沿って文法チェックをしてくれる便利なツールがあるとのこと。
EMACSのflymakeなどで文法チェックをしていましたが、今回開発環境のメインマシンをMACに変更するため
こちらの記事を参考に早速ClosureLinterをインストールしてみました。
http://www.publickey1.jp/blog/10/google_javascript_style_guidejavascript.html

グーグルJavaScriptコードスタイルガイド

Closure Linterのインストール方法

詳しいインストールについて

macでのインストール作業は一瞬でおわります。

$ sudo easy_install http://closure-linter.googlecode.com/files/closure_linter-latest.tar.gz

Downloading http://closure-linter.googlecode.com/files/closure_linter-latest.tar.gz
Processing closure_linter-latest.tar.gz
Running closure_linter-2.2.5/setup.py -q bdist_egg --dist-dir /tmp/easy_install-AyWlfv/closure_linter-2.2.5/egg-dist-tmp-9klTVO
zip_safe flag not set; analyzing archive contents...
Adding closure-linter 2.2.5 to easy-install.pth file
Installing fixjsstyle script to /usr/local/bin
Installing gjslint script to /usr/local/bin

Installed /Library/Python/2.6/site-packages/closure_linter-2.2.5-py2.6.egg
Processing dependencies for closure-linter==2.2.5
Searching for python-gflags
Reading http://pypi.python.org/simple/python-gflags/
Reading http://code.google.com/p/python-gflags
Best match: python-gflags 1.3
Downloading http://python-gflags.googlecode.com/files/python-gflags-1.3.tar.gz
Processing python-gflags-1.3.tar.gz
Running python-gflags-1.3/setup.py -q bdist_egg --dist-dir /tmp/easy_install-ZVAGaz/python-gflags-1.3/egg-dist-tmp-AmFomM
zip_safe flag not set; analyzing archive contents...
Adding python-gflags 1.3 to easy-install.pth file

Installed /Library/Python/2.6/site-packages/python_gflags-1.3-py2.6.egg
Finished processing dependencies for closure-linter==2.2.5

使い方

使い方は、コマンドラインからコマンド名$gjslintのうしろにファイル名。

$ gjslint path/to/my/file.js


ディレクトリごとまとめてチェックを行う方法

$ gjslint -r path/to/my/directory


GoogleのコーディングスタイルではJsDocを使う事になってるので、それを無視するオプション

$ gjslint --nojsdoc -r path/to/my/directory


文法のチェックを行い自動的に直してくれるコマンドまで用意されている。

$ fixjsstyle path/to/file1.js path/to/file2.js