Comment pouvez-vous lancer Ruby on Rails en utilisant les fonctionnalités intégrées de lancement/débogage de code de Visual Studio?)
Comment réparez-vous le Debugger terminal error: Process failed: spawn rdebug-ide ENOENT
Erreur?
ext install
dans l'invite, puis recherchez Ruby
)gem install Ruby-debug-ide
gem install debase
{
"name": "Rails server",
"type": "Ruby",
"request": "launch",
"cwd": "${workspaceRoot}",
"program": "${workspaceRoot}/bin/Rails",
"env": {
"PATH": "YOUR_PATH_HERE",
"GEM_HOME": "YOUR_GEM_HOME_HERE",
"GEM_PATH": "YOUR_GEM_PATH_HERE",
"Ruby_VERSION": "YOUR_Ruby_VERSION_HERE"
},
"args": [
"server"
]
}
Dans certains cas, vous n'aurez peut-être pas besoin de spécifier la section
env
. Dans d'autres cas, vous pouvez lancer VS Code en utilisant la CLI (c'est-à-dire depuis le terminal), qui sur certains systèmes définit automatiquement les variables d'environnement correctes.
Si vous obtenez l'erreur suivante
Debugger terminal error: Process failed: spawn rdebug-ide ENOENT
Vos variables d'environnement (env
) ne sont probablement pas définies et le plugin ne peut pas trouver les binaires nécessaires.
bundler install --binstubs
si vous utilisez bundler.env
est définie dans votre configuration de lancement. Exécutez la commande Shell suivante pour générer votre env
:printf "\n\"env\": {\n \"PATH\": \"$PATH\",\n \"GEM_HOME\": \"$GEM_HOME\",\n \"GEM_PATH\": \"$GEM_PATH\",\n \"Ruby_VERSION\": \"$Ruby_VERSION\"\n}\n\n"
Assurez-vous d'utiliser l'orthographe (et la capitalisation) correctes de la variable path
, c'est-à-dire Path
sous Windows
J'ai passé la majeure partie de la journée à essayer de résoudre ce problème.
J'ai fini par supprimer ma configuration launch.json comme suit:
"configurations": [
{
"name": "Rails server",
"type": "Ruby",
"request": "launch",
"cwd": "${workspaceRoot}",
"program": "/Users/mitch/.rvm/gems/Ruby-2.3.0@gg_portal/bin/Rails",
"args": [
"server"
],
"useBundler": true,
"pathToRDebugIDE": "/Users/mitch/.rvm/gems/Ruby-2.3.0@gg_portal/gems/Ruby-debug-ide-0.6.1",
"pathToBundler": "/Users/mitch/.rvm/gems/Ruby-2.3.0@gg_portal/wrappers/bundle",
"showDebuggerOutput": true
}
]
Tout d'abord, en particulier si vous utilisez RVM et que vous avez différents jeux de gemmes, assurez-vous que vos chemins sont cohérents avec le jeu de gemmes correct.
Ce qui a résolu le problème pour moi, c'est pathToBundler.
which bundle
/Users/mitch/.rvm/gems/Ruby-2.3.0@gg_portal/bin/bundle
Il semble y avoir une certaine incompatibilité autour de la définition du chemin d'accès au bundle binstubs (illustré ci-dessus) et le bundler pointé depuis/wrappers/(illustré ci-dessous), donc en changeant pathToBundler en:
"pathToBundler": "/Users/mitch/.rvm/gems/Ruby-2.3.0@gg_portal/wrappers/bundle",
résolu le problème.
Il y a une sorte de discussion connexe ici:
https://github.com/Rails/rails/issues/31193
qui parle de binstubs mais pas spécifiquement de VSCode et de débogage.
Si vous utilisez un gestionnaire de version Ruby tel que rbenv qui repose sur des shims bash, essayez de lancer VS Code à partir du terminal. Cela devrait permettre à VS Code de récupérer les variables env définies par rbenv Vous pouvez également définir vos vars env dans launch.json
, mais ce n'est pas une solution très maintenable.