我想让Bundler装一颗当地的宝石。有这样的选择吗?或者我必须将gem文件夹移到.Bundle目录中?
qyzbxkaa1#
我相信你能做到:
gem "foo", path: "/path/to/foo"
nc1teljy2#
除了指定路径(正如Jimmy提到的)外,您还可以通过使用以下配置选项,强制Bundler仅对您的环境使用本地gem:
$ bundle config set local.GEM_NAME /path/to/local/git/repository
如果您同时开发两个gem或一个gem和一个rails应用程序,这将非常有用。但请注意,这仅在您已经在使用git作为依赖项时才有效,例如:
# In Gemfile gem 'rack', :github => 'rack/rack', :branch => 'master' # In your terminal $ bundle config set local.rack ~/Work/git/rack
就像文件上看到的那样。
z18hc3ub3#
如果您正在处理一个本地的gem,您也可以使用git引用它。
gem 'foo', :git => '/Path/to/local/git/repo', :branch => 'my-feature-branch'
然后,如果它改变了,我就跑
bundle exec gem uninstall foo bundle update foo
但我不确定每个人都需要运行这两个步骤。
apeeds0o4#
要在Rails项目中使用本地gem库,请执行以下步骤:1.检查您的gem文件夹是否为git仓库(命令在gem文件夹中执行)
git rev-parse --is-inside-work-tree
1.获取仓库路径(命令在gem文件夹中执行)
git rev-parse --show-toplevel
1.为Rails应用程序设置本地覆盖
bundle config local.GEM_NAME /path/to/local/git/repository
其中,GEM_NAME是gem的名称,/path/to/local/git/repository是2点的命令的输出1.在您的应用程序Gemfile中添加以下行:
GEM_NAME
/path/to/local/git/repository
2
Gemfile
gem 'GEM_NAME', :github => 'GEM_NAME/GEM_NAME', :branch => 'master'
1.运行bundle install应该会得到如下结果:
bundle install
Using GEM_NAME (0.0.1) from git://github.com/GEM_NAME/GEM_NAME.git (at /path/to/local/git/repository)
其中GEM_NAME是您的宝石的名称,/path/to/local/git/repository从2点开始1.最后,运行bundle list,而不是gem list,您应该会看到如下所示:
bundle list
gem list
GEM_NAME (0.0.1 5a68b88)
其中GEM_NAME是您的宝石的名称我正在使用以下几个重要案例进行观察:
Rails 4.0.2 ruby 2.0.0p247 (2013-06-27 revision 41674) [x86_64-linux] Ubuntu 13.10 RubyMine 6.0.3
RubyMine
stop/start
version
stopping/starting
gem 'GEM_NAME', '0.0.2', :github => 'GEM_NAME/GEM_NAME', :branch => 'master'
goqiplq25#
您可以引用具有源的宝石:source: 'https://source.com', git repository (:github => 'git/url')和本地路径:path => '.../path/gem_name'。您可以在本文中了解更多关于Gemfiles及其使用方法的信息。
source: 'https://source.com', git repository (:github => 'git/url')
:path => '.../path/gem_name'
3gtaxfhh6#
如果您也想要分支机构:
gem 'foo', path: "point/to/your/path", branch: "branch-name"
6条答案
按热度按时间qyzbxkaa1#
我相信你能做到:
nc1teljy2#
除了指定路径(正如Jimmy提到的)外,您还可以通过使用以下配置选项,强制Bundler仅对您的环境使用本地gem:
如果您同时开发两个gem或一个gem和一个rails应用程序,这将非常有用。
但请注意,这仅在您已经在使用git作为依赖项时才有效,例如:
就像文件上看到的那样。
z18hc3ub3#
如果您正在处理一个本地的gem,您也可以使用git引用它。
然后,如果它改变了,我就跑
但我不确定每个人都需要运行这两个步骤。
apeeds0o4#
要在Rails项目中使用本地gem库,请执行以下步骤:
1.检查您的gem文件夹是否为git仓库(命令在gem文件夹中执行)
1.获取仓库路径(命令在gem文件夹中执行)
1.为Rails应用程序设置本地覆盖
其中,
GEM_NAME
是gem的名称,/path/to/local/git/repository
是2
点的命令的输出1.在您的应用程序
Gemfile
中添加以下行:1.运行
bundle install
应该会得到如下结果:其中
GEM_NAME
是您的宝石的名称,/path/to/local/git/repository
从2
点开始1.最后,运行
bundle list
,而不是gem list
,您应该会看到如下所示:其中
GEM_NAME
是您的宝石的名称我正在使用以下几个重要案例进行观察:
RubyMine
似乎没有将本地宝石显示为外部库。有关该错误的更多信息可在here和here中找到stop/start
Rails服务器version
,stopping/starting
,Rails服务器会给我一个错误。为了修复它,我在Rails应用程序Gemfile
中指定了gem版本,如下所示:goqiplq25#
您可以引用具有源的宝石:
source: 'https://source.com', git repository (:github => 'git/url')
和本地路径:path => '.../path/gem_name'
。您可以在本文中了解更多关于Gemfiles及其使用方法的信息。
3gtaxfhh6#
如果您也想要分支机构: