やりたいこと
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')
let g:ale_javascript_eslint_use_global = 1
let g:ale_javascript_eslint_executable = 'eslint_d'
endif
let g:ale_linters_explicit = 1
let g:ale_linters = {
\ 'javascript': ['eslint'],
\ 'typescript': ['tsserver', 'eslint'],
\ 'vue': ['eslint']
\ }
確認
VimでJavaScriptファイルを開いて、:ALELint
コマンドを実行します。
次にターミナルを開いて、以下のコマンドを実行します。
$ eslint_d status
うまく連携ができていれば、Running. One instance cached.
のような内容が表示され、aleからeslint_dが実行されていることを確認できます。
eslint_dを停止させる
eslint_dはバックグラウンドで常駐します。
停止させたいときは以下のコマンドを実行します。
$ eslint_d stop