VSCode搭建ruby开发调试环境

安装rvm

rvm是ruby版本管理工具,可以管理本地的ruby的版本

curl -sSL https://get.rvm.io | bash -s stable

安装ruby

使用 rvm list known获取已知的ruby版本,这里安装3.0.0版本的ruby

rvm install 3.0.0

新建ruby文件

在VSCode中新建ruby文件main.rb

#!/usr/bin/ruby
puts "hello ruby"

打开终端命令行,输入ruby main.rb,程序可以正常执行。

引入依赖

gem install bundle

bundle用于管理Gemfile中的依赖,需要安装bundle

在工程中新建一个Gemfile文件,引入date依赖

source 'https://gems.ruby-china.com/'
gem 'date', '~> 3.3'

执行bundle install,依赖安装成功。

#!/usr/bin/ruby

require 'date'

puts "hello ruby"

puts Date.today()

在main.rb文件中写入代码,使用require引入date并使用。

hello ruby
2022-12-28

执行ruby main.rb后控制台输出了结果。

调试

在调试ruby之前,需要安装VSCode的Ruby插件和调试所需的库。
请添加图片描述

在Gemfile文件中添加依赖

source 'https://gems.ruby-china.com/'
gem 'ruby-debug-ide'
gem 'debase', '0.2.5.beta2'

请添加图片描述

VSCode左侧Debug菜单,点击创建launch.json文件,选择Ruby然后选择Debug local File

{
    
    
    "version": "0.2.0",
    "configurations": [
        {
    
    
            "name": "Debug Local File",
            "type": "Ruby",
            "request": "launch",
            "program": "${workspaceRoot}/main.rb"
        }
    ]
}

VSCode自动生成了ruby调试的配置,type为Ruby,request为launch,program为创建的main.rb文件。

#!/usr/bin/ruby

puts "hello ruby"

v = "debug ruby"
puts "#{
      
      v}"

main.rb文件中增加代码,新定义了v = "debug ruby"这个变量,并且打印输出。

在v = "debug ruby"前加断点,点击Debug Local File运行后,断点停在了此行,VSCode左侧调试面板可以查看当前的调用堆栈,临时变量和全部变量。

Ruby开发调试环境已经搭建完成。

tips

如果有报错找不到ruby,可以尝试在launch.json中添加PATH,RUBY_VERSION,GEM_HOME,GEM_PATH环境变量。

{
    
    
    "version": "0.2.0",
    "configurations": [
        {
    
    
            "name": "Debug Local File",
            "type": "Ruby",
            "request": "launch",
            "program": "${workspaceRoot}/main.rb",
            "env": {
    
    
                "PATH": "xxx",
                "GEM_HOME": "xxx",
                "GEM_PATH": "xxx",
                "RUBY_VERSION": "xxx"
            }
        }
    ]
}

在命令行中执行

echo $PATH
echo $GEM_HOME
echo $GEM_PATH
echo $RUBY_VERSION

执行这些命令后可以取得对应的值,然后填入launch.json文件中,重启VSCode重新运行程序。

猜你喜欢

转载自blog.csdn.net/u011608357/article/details/128507453