加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

带有“调试器”gem的RubyMine 6.0.2无需修改Gemfile.lock?

发布时间:2020-12-17 04:01:32 所属栏目:百科 来源:网络整理
导读:我使用的是 RubyMine(v6.0.2),但是我的队友不是,所以他们需要gemfile中的“debugger”gem.我可以在运行RubyMine时有条件地不需要Gemfile(因此Gemfile可以共享且相同),但由于未包含’debugger’gem,Gemfile.lock文件会根据项目上次使用RubyMine运行还是更改不
我使用的是 RubyMine(v6.0.2),但是我的队友不是,所以他们需要gemfile中的“debugger”gem.我可以在运行RubyMine时有条件地不需要Gemfile(因此Gemfile可以共享且相同),但由于未包含’debugger’gem,Gemfile.lock文件会根据项目上次使用RubyMine运行还是更改不.这会在冗余的Gemfile.lock更改中产生很多噪音.

我尝试过使用’debugger-xml’gem;这并没有解决问题.

那么 – 我怎样才能运行RubyMine 6.0.2,使用Gemfile中的’debugger’gem,而不更改Gemfile.lock?

解决方法

我一直在从桌子的另一边研究这个问题.我使用调试器gem,但有使用RubyMine的队友.

我们讨论了几个可能的解决方案,但它们都涉及Gemfile中的条件检查,这将导致修改的Gemfile.lock.

我搜索了一个更好的解决方案,发现这个SO帖子:How to use gems not in a Gemfile when working with bundler?

结合其中的一些答案,我提出了这个解决方案:

>从Gemfile中删除调试器gem.
>使用以下内容创建Gemfile.local.
>如果使用git,将Gemfile.local添加到.gitignore文件.
>创建一个函数和shell别名.
>使用$be rails s启动rails

一切如何运作!

默认情况下,Bundler将使用名为Gemfile的文件,但可以通过指定BUNDLE_GEMFILE环境变量来覆盖此行为. Bundler将使用/创建与BUNDLE_GEMFILE同名的锁定文件.

shell函数__bundle_exec_custom将检查CWD中是否有Gemfile.local文件.如果有,则设置并使用BUNDLE_GEMFILE变量.否则,使用默认的Gemfile.

这将允许开发人员使用他们想要的任何宝石进行本地开发,而不必影响整个应用程序.

Gemfile.local:

source "https://rubygems.org"

gemfile = File.join(File.dirname(__FILE__),'Gemfile')
if File.readable?(gemfile)
  puts "Loading #{gemfile}..." if $DEBUG
  instance_eval(File.read(gemfile))
end

gem 'debugger'

函数和shell别名:

__bundle_exec_custom () {
  if [ -f Gemfile.local ]
  then
    BUNDLE_GEMFILE="Gemfile.local" bundle exec $@
  else
    bundle exec $@
  fi
}

# Rails aliases
alias be='__bundle_exec_custom'

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读