最近我在vscode上安装了rubocop。但是,它不工作。错误信息如下。
rubocop is not excutable
execute path is empty! please check ruby.rubocop.executePath
我该怎么解决呢?我查了一些文章,都没解决...
参见vscode-Ruby-红铜https://github.com/misogi/vscode-ruby-rubocop
最近我在vscode上安装了rubocop。但是,它不工作。错误信息如下。
rubocop is not excutable
execute path is empty! please check ruby.rubocop.executePath
我该怎么解决呢?我查了一些文章,都没解决...
参见vscode-Ruby-红铜https://github.com/misogi/vscode-ruby-rubocop
6条答案
按热度按时间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指的是其他一些可能的解决方案,例如:
bin
替换为wrappers
executable hooks
abithluo2#
tl;dr
确保你一开始就安装了Rubocop。
VS代码Rubocop教程
Install Rubocop(第一个字母)
您可以检查它是否正常工作,如下所示:
安装VS代码扩展
搜索并安装
ruby-rubocop
in the marketplace。为您的项目配置Rubocop
添加一个
.rubocop.yml
文件到你的项目的根目录。你可以看到所有的配置选项,以及这样一个文件在default config file中应该是什么样子的。注意,如果文件中有过时的或错误的规则,你会得到一个错误,Rubocop将无法工作。VS代码会警告你这一点:gupuwyp23#
请查看配置文档。
因此,默认情况下不会设置
executePath
,因为它希望您在PATH中包含rubocop可执行文件。简单地说,你可以做两件事,把rubocop的可执行路径添加到PATH中,或者把它添加到包选项中。
您可以使用
which rubocop
检查rubocop可执行文件目录(然后复制并粘贴)。1tuwyuhd4#
简短回答:请尝试以其他方式启动VSCode。
说明:一个进程继承了它启动时的所有环境配置。如果rubocop安装在你的全局环境中,那么,无论你如何启动VSCode,rubocop都将对插件可用。缺点是,rubocop现在对所有东西都可用,大多数东西永远不需要它,所有使用它的东西都需要相同版本的rubocop。
如果rubocop是使用ruby管理器安装在gemset中的,或者您有一个类似于点文件管理器的东西来操纵您的环境,那么当您启动VSCode时,rubocop可能不在PATH中。
我总是从终端启动VSCode。我打开一个终端,并将
cd
放到我的项目文件夹中。我的ruby管理器(rvm)和点文件管理器(drenv)自动添加和更改环境中的一些变量。然后我运行code .
,以启动VSCode和我的项目。这确保了VSCode运行在与我的应用程序相同的环境配置中。64jmpszr5#
当我遇到这个问题时,是因为我的捆绑包想要的版本和vscode中rubocop想要的版本不一样。
在vscode rubocop设置中,检查'execute rubocop using bundler(即'bundle exec rubocop ')并删除为我工作的执行路径。Ruby > Rubocop: Use Bundler checkbox
euoag5mw6#
有相同的错误。问题是VS代码隐藏了详细的错误。
要查看完整错误并帮助解决问题,请执行以下操作:
打开帮助-〉开发工具-〉控制台(see this)
您将在此处看到实际的错误。
我有2个坏警察,必须更新,也可执行路径是错误的。
非常烦人,但是如果你打开开发工具并检查控制台,你将能够更好地调试并解决出现的任何问题。