やりたいこと
eslint_dを使用して、aleでのESLintの実行を高速化したい。
eslint_dを実行すると、バックグラウンドでサーバプロセスとして常駐し、ESLint実行時のオーバーヘッドを軽減してくれます。
導入
まず、eslint_dをインストールします。
$ npm install eslint_d -g
次にaleをインストールします。
以下はdein.vimを使用した際の設定例です。on_cmd
オプションを使って、指定されたコマンドが実行されるまでaleの読み込みを遅延しています。
dein.toml
[[plugins]]repo='w0rp/ale'on_cmd=['ALELint', 'ALEToggle', 'ALEEnable', 'ALEToggleBuffer', 'ALEEnableBuffer']
vimrcにaleからeslint_dを使用するための設定を記述します。
設定例
" eslint_dを利用するための設定if executable('eslint_d')letg:ale_javascript_eslint_use_global=1letg:ale_javascript_eslint_executable='eslint_d'endifletg:ale_linters_explicit=1letg:ale_linters={ \'javascript':['eslint'], \'typescript':['tsserver','eslint'], \'vue':['eslint'] \}
確認
JavaScriptファイルを開いて、:ALELint
コマンドを実行します。
次にターミナルを開いて、以下のコマンドを実行します。
$ eslint_d status
うまく連携ができていれば、Running. One instance cached.
のような内容が表示され、aleからeslint_dが実行されていることを確認できます。
eslint_dを停止させる
eslint_dはバックグラウンドで常駐します。
停止させたいときは以下のコマンドを実行します。
$ eslint_d stop