若干ニッチな状況でハマったので備忘録
エラー状況
VSCodeで.rbファイルを開くと、[Warn] execute path is empty! please check ruby.rubocop.executePath config
エラーとなり、rubocopが効かない状態になる。
環境
- Windows 10
- Ruby 2.3.3(233p222)
- uru 0.8.4
- VSCode 1.17.2
- ruby-rubocop 0.4.0
- rubocop 0.51.0
- uruでrubyのバージョンを管理
uru 233p222
- VSCodeに拡張機能の
ruby-rubocop
をインストール - グローバルのgemにrubocopをインストール
原因
ruby-rubocopはruby.rubocop.executePathが空欄の場合、環境変数PATHを参照してrubocopを実行する。1
しかしuruでRubyのバージョンを切り替えている場合、VSCode起動時にはuruでのRubyバージョンが未指定の為、環境変数PATHにrubyのpathが通っていない。
- VSCode起動
- rubocopが環境変数を参照 ←この時点でpathが通ってない
- uruでrubyバージョンを設定
- 環境変数にpathが通る
回避方法
環境変数PATHに<Rubyのインストールフォルダ>\bin
を設定することでエラーが解消される。
Rubyをインストールする際、「Rubyの実行ファイルへ環境変数PATHを設定する」チェックをオフにしていたのでハマった。
-
通常は
<Rubyのインストールフォルダ>\bin\rubocop
↩