はてブロ@ama_chスマートフォン用の表示で見るはてブロ@ama_chhttps://twitter.com/ama_chこの広告は、90日以上更新していないブログに表示しています。1.1.0がリリースされ、そのリリースノートに気になる記述がありました。LinterってJSDocとかお作法的なとこはチェックしてくれるけど、他のLintツールが当たり前にチェックしてくれるとこはやってくれないんですよね。varの付け忘れとか。Compilerを使ってコンパイル時にチェックすることもできるけど、規模が大きくなってくるとその結果が出るまでに10分とか待たないといけなくっていやな感じー。LinterとJSHintが一緒に使えたらいいんだけどなー。LinterとJSHintが喧嘩してしまい、同時に使うのが難しかったんです。1.1.0で解消したと。Linterが一括でかけられるGruntプロジェクトを作ってみました。gruntデフォルトタスクにjshint:allとgjslint:allが設定してあります。watch変更したファイルのみjshint+gjslintして、結果をGrowlで通知します。解説など以下、中身の解説です。--flagfileを渡したいgjslintを実行するGruntタスクとしてはgrunt-closure-linterがありますが、gjslintコマンドに任意の引数が渡せないっぽかったので練習もかねてタスクを自作しました。gjslintの設定はファイルにして--flagfileオプションで渡せるようにしておくと、.jshintrcと似た設定が書けて後述のエディタ連携でも使えます。Linterを使ってて一番キツイのが一行80文字制限だと思います。これはハードコーディングされていて、設定ができないという。Linterの80文字制限は不要です。この記事を参考にして、ラッパースクリプトを追加して80文字制限を除外しました。あとはこのラッパースクリプトをGruntfile.jsにgjslint.cmdというパラメータで記述して、それを実行するようにしています。watchして変更したファイルだけlintGruntのサンプルを見ていると大体watchで全部のファイルがlintやminifyの対象になっていて、そこそこの規模のプロジェクトで使うのは厳しいです。watchの時は変更したファイルだけタスクの対象にしたいですよね。Gruntが出てきた時にそれができなくて手を出すのをやめて、継続的にウォッチだけしていました。前にgrunt-contrib-watchにnospawnというオプションが入って、これを使うと変更ファイルが取得できるらしい。これで勝つる!と意気込んだものの、ちょっと調べてみたらgrunt-regardeっていうやつの方が良いらしいので結局そっちを使いました。具体的な書き方を一部抜き出すとこんな感じ。'js/**/*.js']});jshintにwatchというターゲットを追加して、srcにgrunt.regarde.changedと指定すると、変更されたファイルだけを対象にしてタスクが実行できます。筋の良いやり方かどうかは分かりませんが。watchでregardeが動くようになりました。やったね!Gruntfile.jsもwatchで書けるようになります。watchしてるときにエラーが出ても落ちないようにするwatchタスクの実行中にlintエラーが出るとタスク自体が終了してしまって、全然watchできない。オプションにforceをつけるとか何種類か回避方法はあるみたいですが。ここのやりとりを参考にして以下のようにしました。{};});watchの結果をGrowl通知Growl通知はgrunt-notifyのnotify_hooksを使うだけでできました。gjslintはstdoutに改行が含まれるせいか、Ubuntuのnotify-sendがうまく通知してくれませんでした。Growlでは問題ないので、ひとまず後回し。IDEAに乗り換えました。Linterに対応していて、設定ファイルを指定するだけでエディタと連携できます。LinterエディタJSHintはちょっとバンドルされているバージョンが古いようで誤判定される部分もありますが、概ね快適に使えています。2とgjslintの--jslint_error=indentationは同時に設定するとswitch文で喧嘩する。Linterおすすめです。その2前回に引き続き、今回はWindowsのソフトをご紹介します。Vol.74でJavaScriptのメモリリークについて書きました!月別アーカイブはてなブログをはじめよう!ama-chさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。