ruby VScode上的rubocop不工作,错误“rubocop不可执行”

wecizke3  于 2022-11-04  发布在  Ruby
关注(0)|答案(6)|浏览(265)

最近我在vscode上安装了rubocop。但是,它不工作。错误信息如下。

rubocop is not excutable 
execute path is empty! please check ruby.rubocop.executePath

我该怎么解决呢?我查了一些文章,都没解决...
参见vscode-Ruby-红铜https://github.com/misogi/vscode-ruby-rubocop

yptwkmov

yptwkmov1#

接受的答案对我不起作用。但是,我确实找到了jdarnok对这个GitHub issue的评论,对我起作用。
首先,为了获得程序文件的用户路径,我运行了:
rbenv which rubocop
这给了我这个结果:
/Users/<your username>/.rbenv/versions/2.6.2/gemsets/Rails4.2_EnergyLink/bin/rubocop
然后我就跑了:
which rubocop
这给了我这个结果:
/Users/<your username>/.rbenv/shims/rubocop

解决方案

Ruby > Rubocop: Execute Path下的VS代码设置中,我粘贴了:
/Users/<your username>/.rbenv/shims/

  • 其他可能的解决方案 *

Stackoverflow post指的是其他一些可能的解决方案,例如:

  • 将PATH中的bin替换为wrappers
  • 刷新executable hooks
  • 更新捆绑包
  • 更新gem
abithluo

abithluo2#

tl;dr

确保你一开始就安装了Rubocop。

VS代码Rubocop教程

Install Rubocop(第一个字母)
gem install rubocop

您可以检查它是否正常工作,如下所示:

rubocop -v

安装VS代码扩展

搜索并安装ruby-rubocop in the marketplace

为您的项目配置Rubocop

添加一个.rubocop.yml文件到你的项目的根目录。你可以看到所有的配置选项,以及这样一个文件在default config file中应该是什么样子的。注意,如果文件中有过时的或错误的规则,你会得到一个错误,Rubocop将无法工作。VS代码会警告你这一点:

gupuwyp2

gupuwyp23#

请查看配置文档。

{
  // If not specified searches for 'rubocop' executable available on PATH (default and recommended)
  "ruby.rubocop.executePath": "",
  ...
}

因此,默认情况下不会设置executePath,因为它希望您在PATH中包含rubocop可执行文件。
简单地说,你可以做两件事,把rubocop的可执行路径添加到PATH中,或者把它添加到包选项中。
您可以使用which rubocop检查rubocop可执行文件目录(然后复制并粘贴)。

1tuwyuhd

1tuwyuhd4#

简短回答:请尝试以其他方式启动VSCode。
说明:一个进程继承了它启动时的所有环境配置。如果rubocop安装在你的全局环境中,那么,无论你如何启动VSCode,rubocop都将对插件可用。缺点是,rubocop现在对所有东西都可用,大多数东西永远不需要它,所有使用它的东西都需要相同版本的rubocop。

如果rubocop是使用ruby管理器安装在gemset中的,或者您有一个类似于点文件管理器的东西来操纵您的环境,那么当您启动VSCode时,rubocop可能不在PATH中。
我总是从终端启动VSCode。我打开一个终端,并将cd放到我的项目文件夹中。我的ruby管理器(rvm)和点文件管理器(drenv)自动添加和更改环境中的一些变量。然后我运行code .,以启动VSCode和我的项目。这确保了VSCode运行在与我的应用程序相同的环境配置中。

64jmpszr

64jmpszr5#

当我遇到这个问题时,是因为我的捆绑包想要的版本和vscode中rubocop想要的版本不一样。
在vscode rubocop设置中,检查'execute rubocop using bundler(即'bundle exec rubocop ')并删除为我工作的执行路径。Ruby > Rubocop: Use Bundler checkbox

euoag5mw

euoag5mw6#

有相同的错误。问题是VS代码隐藏了详细的错误。
要查看完整错误并帮助解决问题,请执行以下操作:
打开帮助-〉开发工具-〉控制台(see this
您将在此处看到实际的错误。
我有2个坏警察,必须更新,也可执行路径是错误的。
非常烦人,但是如果你打开开发工具并检查控制台,你将能够更好地调试并解决出现的任何问题。

相关问题