如何在VSCode的Rails调试配置launch.json中添加环境变量切换运行环境
配置修改方案
Rails启动时会优先读取RAILS_ENV环境变量确定运行环境,你只需要修改launch.json里的对应配置即可,有两种常用实现方式:
方式1:通过env字段指定环境变量
在你现有的配置的env对象中新增RAILS_ENV字段,值设为你需要的环境(test/qa/production等均可):
{ "version": "0.2.0", "configurations": [ { "name": "Rails server", "type": "Ruby", "request": "launch", "program": "${workspaceRoot}/bin/rails", "args": [ "server" ], "showDebuggerOutput": true, "env": { "PATH": "/Users/giri.shankar/.rvm/gems/ruby-2.6.3@codeforkout/bin:/Users/giri.shankar/.rvm/gems/ruby-2.6.3@global/bin:/Users/giri.shankar/.rvm/rubies/ruby-2.6.3/bin:/Users/giri.shankar/.rvm/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin", "GEM_HOME": "/Users/giri.shankar/.rvm/gems/ruby-2.6.3@codeforkout", "GEM_PATH": "/Users/giri.shankar/.rvm/gems/ruby-2.6.3@codeforkout:/Users/giri.shankar/.rvm/gems/ruby-2.6.3@global", "RUBY_VERSION": "ruby-2.6.3", "RAILS_ENV": "test" } } ] }
方式2:通过rails server启动参数指定
在args数组中添加-e参数指定运行环境:
"args": [ "server", "-e", "qa" ]
多环境快速切换配置
如果需要频繁切换不同环境调试,可以在configurations数组中添加多个配置项,每个对应不同环境,启动调试时直接在VSCode的调试下拉框选择对应环境即可,示例:
{ "version": "0.2.0", "configurations": [ { "name": "Rails server [开发环境]", "type": "Ruby", "request": "launch", "program": "${workspaceRoot}/bin/rails", "args": ["server"], "showDebuggerOutput": true, "env": { "PATH": "/Users/giri.shankar/.rvm/gems/ruby-2.6.3@codeforkout/bin:/Users/giri.shankar/.rvm/gems/ruby-2.6.3@global/bin:/Users/giri.shankar/.rvm/rubies/ruby-2.6.3/bin:/Users/giri.shankar/.rvm/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin", "GEM_HOME": "/Users/giri.shankar/.rvm/gems/ruby-2.6.3@codeforkout", "GEM_PATH": "/Users/giri.shankar/.rvm/gems/ruby-2.6.3@codeforkout:/Users/giri.shankar/.rvm/gems/ruby-2.6.3@global", "RUBY_VERSION": "ruby-2.6.3", "RAILS_ENV": "development" } }, { "name": "Rails server [测试环境]", "type": "Ruby", "request": "launch", "program": "${workspaceRoot}/bin/rails", "args": ["server"], "showDebuggerOutput": true, "env": { "PATH": "/Users/giri.shankar/.rvm/gems/ruby-2.6.3@codeforkout/bin:/Users/giri.shankar/.rvm/gems/ruby-2.6.3@global/bin:/Users/giri.shankar/.rvm/rubies/ruby-2.6.3/bin:/Users/giri.shankar/.rvm/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin", "GEM_HOME": "/Users/giri.shankar/.rvm/gems/ruby-2.6.3@codeforkout", "GEM_PATH": "/Users/giri.shankar/.rvm/gems/ruby-2.6.3@codeforkout:/Users/giri.shankar/.rvm/gems/ruby-2.6.3@global", "RUBY_VERSION": "ruby-2.6.3", "RAILS_ENV": "test" } }, { "name": "Rails server [QA环境]", "type": "Ruby", "request": "launch", "program": "${workspaceRoot}/bin/rails", "args": ["server"], "showDebuggerOutput": true, "env": { "PATH": "/Users/giri.shankar/.rvm/gems/ruby-2.6.3@codeforkout/bin:/Users/giri.shankar/.rvm/gems/ruby-2.6.3@global/bin:/Users/giri.shankar/.rvm/rubies/ruby-2.6.3/bin:/Users/giri.shankar/.rvm/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin", "GEM_HOME": "/Users/giri.shankar/.rvm/gems/ruby-2.6.3@codeforkout", "GEM_PATH": "/Users/giri.shankar/.rvm/gems/ruby-2.6.3@codeforkout:/Users/giri.shankar/.rvm/gems/ruby-2.6.3@global", "RUBY_VERSION": "ruby-2.6.3", "RAILS_ENV": "qa" } } ] }
内容的提问来源于stack exchange,提问作者Giri
相关产品推荐
相关产品推荐

