ESLint事始め
はじめに
ESLint は JavaScript のための静的検証ツール。
コードを実行する前に明らかなバグを見つけたり、括弧やスペースの使い方などのスタイルを統一したりするのに役立つ。
以前メモしたEditorConfigも,コードスタイル統一ができるが,これにJavaScripの文法チェック機能が付いた感じ。
React.jsやAngular.jsなどにも対応しているので,Atomにその環境を構築したのでそのメモ。
目次
ESLintとは
公式ホームぺージESLint によると
ESLintはコードを静的に分析して、問題をすばやく見つけます。 ESLintはほとんどのテキストエディターに組み込まれており、ESLintを継続的インテグレーションパイプラインの一部として実行できます。
との事。
Node.jsのnpmパッケージとして提供されている。
特徴
- すべての検証ルールを自由に on/off できる
- カスタムルールを簡単に作れる
- EcmaScript 2015 / 2016やReactなどの構文にも対応
- JSX 記法 をサポートしている
- Babel と連携している。
- プラグインが豊富
Atom にESLintの環境を構築する
npm パッケージなので,様々なエディタに導入する事ができるのも特徴。
自分はGitHub製のAtomを使用しているので,これにESLintを組み込んでいく。
「linter-eslint」をインストール
AtomでESLintを使うためのパッケージである「linter-eslint」をインストールする。
他のプラグインと同様に設定画面のインストールから検索してインストールするか,コマンドプロンプトで次のコマンドを叩く。
- CLI
1 | apm install linter-eslint |
さらに,依存関係にあるlinterといパッケージもインストールする。(インストール順は関係なさそう)
- CLI
1 | apm install linter |
linterはAtomエディターの基本的なリンタープロバイダー。他の言語用のLinterをインストールすることで文法チェック等ができるようになる。
さらに以下のインストールを入れると,Atomエディタの下部にリアルタイムにエラーをチェックし表示してくれる。
- CLI
1 | apm install linter-ui-default |
ESLint 本体のインストール
次にESLintの本体をnpmでインストールする。
インストール箇所は,プロジェクト単体かグローバルにインストールできる。ESLint本体には,プラグインを組み込むことで各所で策定されたルールを簡単に導入する事ができる。
- CLI
1 | # ローカルインストール |
次に「.eslintrc」ファイルをプロジェクトフォルダに作成する。
これはESLintの設定ファイルで,ルールの設定もここで指定する。
設定できるルールは,公式ページを参照のこと。
.eslintrc ファイルの作成
どの項目を,どの形式でチェックするかを指定する「.eslintrc」ファイルを作成する。
作成自体は簡単で次のコマンドを叩き,質問に回答するだけ。
- CLI
1 | npx eslint --init |
取り合えず人気のある「airbnb」を設定した例。
敢えて選ばずに好きなルールを適用するなり,自作するなりもできる。
.eslintrcの記述
「.eslintrc」にルールを記述していく。
面倒くさい場合は下記を記入すると,すべてが適用される。
- CLI
1 | { |
プラグインを使う
JavaScrptのスタイルガイドは,複数のIT系デベロッパーが公表している。
主なものに
- Google JavaScript Style Guide
- JavaScript style guide | MDN
- Felix’s Node.js Style Guide
- Airbnb JavaScript Guide
今回はFireFoxブラウザの開発元であるMozilla Foundation JS Style Guideを採用。
理由は,単に好きなブラウザなので(適当~)
導入については,以下のGithubを参照にしていく。
- CLI
1 | npm install mofo-style --save-dev |
最新のES6に対応させるには此方を参照。 Configuring ESLint
終わりに
今迄はコードが完成してからブラウザのdeveloperツールで一つ一つバグを潰してた。
なので,リアルタイムで警告してくれるのは嬉しい。
まだ,厳格なルール設定のママなので,今いらないルールを無効化する方法を調べていきたい。
参考
AtomにESLint導入した
ESLintをAtomに導入し、Reactの構文にも対応したAirbnbのJSスタイルガイドを使う
Atomにreact+es6対応したeslintの環境を構築する