【问题标题】:Modify dependency gem修改依赖gem
【发布时间】:2014-11-21 12:42:01
【问题描述】:

我在 Rails 中有一个大项目,它依赖于许多第三方 gem。其中一个 gem 是我开发的 gem,托管在 Github 上。

现在,如果我克隆了大型 Rails 项目并且需要修改“自制”gem 中的某些内容,我应该怎么做?如果有帮助,我会使用 RVM。

对于 Pythonists,我需要的是类似于 pip 中的 -e 标志的东西,您可以在其中将依赖项安装为可编辑的,以便您可以修改它们并查看需要它们的包中的实际更改。

【问题讨论】:

    标签: ruby-on-rails ruby dependencies rvm


    【解决方案1】:

    您可以在本地签出您的 gem,然后根据需要进行编辑。

    在您的 Rails 项目中 Gemfile 指向 gem 的本地结帐:

    gem 'your_gem_name', path: '../your_gem_name'
    

    【讨论】:

      【解决方案2】:

      要对 gem 进行一些更改,您只需在 gem 中创建一个 brunch,然后将 Rails 项目的 Gemfile 中的分支指向 gem 分支,例如:

      gem 'your-gem', :git => 'https://github.com/you/your-gem.git', :branch => 'new-project-branch'
      

      您可以在bundler doc page 上找到更多关于定义的文档。

      注意:当然,您可以使用:path 键而不是gitgithub 键,以防您的gem 和Rails 项目同时进行开发阶段,但是这个技巧无法将 rails 项目发布到网络(如 等)。

      【讨论】:

        【解决方案3】:

        Bundler 1.1 or above 接受 :github 作为选项。所以你可以说:

        gem 'gem_name', :github => 'github_username/gem_name'
        

        如果您可以提及在您的存储库中查找代码的引用、分支或标签,那就更好了:

        gem 'gem_name', :github => 'github_username/gem_name', :branch => "stable-branch"
        

        现在,您可以独立处理 github 存储库并将代码推送到项目 Gemfile 中提到的指定分支。

        但是,您可能想在本地工作和测试,以便可以执行以下操作:

        if ENV['RAILS_ENV'] == 'production'
          gem 'gem_name', :github => 'github_username/gem_name', :branch => "stable"
        else
          gem 'gem_name', :path => "/path/to/gem_name", :branch => 'test'
        end
        

        【讨论】:

        • 所以基本上我需要修改我项目的Gemfile。我认为有一种方法可以告诉 Bundler 以可编辑模式安装 gem,就像您告诉 Pip 这样做一样。
        猜你喜欢
        • 1970-01-01
        • 2013-09-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-04-18
        • 1970-01-01
        • 2015-06-22
        相关资源
        最近更新 更多