Puma-dev를 사용할 때 Visual Studio Code에서 레일 디버깅

4101 단어 railsvscodetutorial
Swift 및 Objective-C와 같은 언어에서 시작하여 무언가를 기록하거나 실행을 일시 중지하기 위해 코드를 편집할 필요가 없는 적절한 디버거를 사용하는 것은 문제를 신속하게 추적하는 데 매우 중요합니다. 그래서 — 제 생각에는 — 우리는 개발 중에 Rails 앱을 실행하기 위해 puma-dev를 사용하고 있습니다. 이는 일반적인 설정이므로 Visual Studio Code의 디버거를 실행 중인 앱에 연결하는 방법에 대한 쉬운 지침이 있어야 합니다. 글쎄, 내가 찾을 수 있었던 것은 아닙니다. 스택 오버플로 게시물 읽기와 실험의 조합을 통해 함께 패치했습니다.

자, 여기 있습니다.

디버그 포트 환경 변수 설정



먼저 puma-dev가 로드될 위치에 환경 변수를 추가해야 합니다. 나는 ~/.powconfig 에 내 것을 넣었습니다. 그것이 가장 먼저 로드되고 내 홈 디렉토리에 있기 때문입니다.

다음을 포함하도록 편집~/.powconfig:
export RUBY_DEBUG_PORT=1234

Gemfile 업데이트


:development에 다음 항목이 있는지 확인하십시오.

gem "ruby-debug-ide"
gem "debase" # or byebug


Ruby 3.1+( rdbg )와 함께 제공되는 새로운 디버거를 사용하여 이 작업을 수행할 수 있는 방법이 있다고 확신하지만 이는 나중에 연습할 것입니다.

rdebug-ide를 시작하기 위해 Rails 이니셜라이저 추가


/config/initializers/(또는 원하는 대로)라는 파일을 start_debugger.rb에 만들고 다음 코드를 추가합니다.

if Rails.env.development? && ENV['RUBY_DEBUG_PORT']
  require "ruby-debug-ide"
  Debugger.start_server nil, ENV['RUBY_DEBUG_PORT'].to_i
end


Visual Studio Code에서 프로젝트에 시작 대상 추가



이 구성을 <app root>/.vscode/launch.json에 추가합니다.

{
  "configurations": [
    {
      "name": "Remote Debug",
      "type": "Ruby",
      "request": "attach",
      "remoteHost": "127.0.0.1",
      "remotePort": "1234",
      "remoteWorkspaceRoot": "${workspaceRoot}",
      "cwd": "${workspaceRoot}",
    }
  ]
}


드디어


touch tmp/restart.txt로 앱을 다시 시작하십시오.

"원격 디버그"를 실행하고, 컨트롤러 중 하나에 중단점을 설정하고, 코드를 트리거할 페이지를 새로 고침하여 테스트하십시오. 모든 것이 올바르게 설정되면 앱이 중단점에서 일시중지되어야 합니다.

축하합니다! 🎉

좋은 웹페이지 즐겨찾기