Lightning CLI Heroku Pluginと呼ばれるツールが公開されましたのでご紹介します。
Lighting CLIはLightingコンポーネントのためのコードレビューツールで、 Summer ’16リリースで追加されるLockerServiceの対応準備に非常もに有用としています。
内部的にはJavascriptのlint(構文チェック)ツールであるESLintを利用しており、自身でそのチェック項目をカスタマイズすることも可能です。
まずLightning CLI Heroku Pluginをインストールします。 Lightning CLI Heroku Pluginはその名の通りHeroku CLIのプラグインとして提供されているので、Heroku CLIがインストールされている必要があります。 またLightning CLI Heroku Pluginはnpmモジュールですので、node.jsも必要となります。 それらを簡単にインストールするためのHeroku Toolbeltというパッケージがありますので、初めての方はこちらを利用すると良いでしょう。
Heroku Toolbeltをインストールしたら、コマンドラインよりsalesforce-lightning-cliパッケージをインストールします。
heroku plugins:install salesforce-lightning-cli
これでLightning CLIが利用できる様になりました。
利用方法は以下の様にLightning コンポーネントのフォルダを指定します。
heroku lightning:lint ./path/to/lightning/components/
するとLightningの構文規則に則っていないAPIを利用している場合にエラーとなる箇所を教えてくれます。 例えばLightning LockerService内ではDOMに対するinnerHTMLの操作や、XMLHttpRequestの生成を禁止されていますが、 通常のESLintではチェックできない項目に対するチェックが可能です。
error secure-document Invalid SecureDocument API Line:109:29 scrapping = document.innerHTML; ^ warning no-plusplus Unary operator '++' used Line:120:50 for (var i = (index+1); i < sibs.length; i++) { ^ error secure-window Invalid SecureWindow API Line:33:21 var req = new XMLHttpRequest(); ^ error default-case Expected a default case Line:108:13 switch (e.keyCode) { ^
lightning:lintには幾つかのコマンドラインオプションがあります。 heroku lightning:lint –helpで見ることができますがいかに日本語の説明を記載しておきます。
Linter for Lightning Components -i, --ignore IGNORE # 任意のフォルダを無視します。 例: --ignore **/foo/** --files FILES # 特定のファイルを対象とします。デフォルトの対象は全ての .js ファイルとなっています。 例: --files **/*Controller.js -j, --json # 他のツールとの統合用にJSONファイルを出力します。デフォルトでは標準出力に行われます。 例: --json --config CONFIG # ESLint設定ファイルのパスを指定します。コードスタイルルールのみが利用され、その他は無視されます。 例: --config path/to/.eslintrc --quiet # エラーのみをリポートします。デフォルトではエラー及び警告がリポートされます。 例: --quiet
Lightning CLIは現状lintしかありませんが今後機能追加がされていくと思われますので、アップデートされ次第都度ご紹介します。