我希望 Bundler 加载本地 gem。有选择吗?还是我必须将 gem 文件夹移动到 .bundle 目录中?
我相信你可以做到这一点:
gem "foo", path: "/path/to/foo"
除了指定路径(如 Jimmy 提到的)之外,您还可以强制 Bundler 仅通过使用以下配置选项为您的环境使用本地 gem:
$ bundle config 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 local.rack ~/Work/git/rack
如 the docs 所示。
BUNDLE_PATH
(构建一个分发包)。在执行您的建议或 Jimmy 的回答时,它只执行 using
,而不是实际安装到我的 BUNDLE_PATH
文件夹中。我无法弄清楚这一点,有什么帮助吗?
bundle config --delete local.GEM_NAME
bundle config disable_local_branch_check true
否则 Bundler 会抱怨该分支。不过要小心这一点,因为检查应该阻止不正确的提交进入 Gemfile.lock
。此处的文档:bundler.io/v1.12/git.html
如果您碰巧正在使用它,您还可以使用 git 引用本地 gem。
gem 'foo',
:git => '/Path/to/local/git/repo',
:branch => 'my-feature-branch'
然后,如果它改变我跑
bundle exec gem uninstall foo
bundle update foo
但我不确定每个人都需要运行这两个步骤。
bundle uninstall <gem> && bundle install
,对于您希望反映在应用程序上的每项更改
为了在 Rails 项目中使用本地 gem 存储库,请按照以下步骤操作:
检查你的gem文件夹是否为git仓库(命令在gem文件夹中执行) git rev-parse --is-inside-work-tree 获取仓库路径(命令在gem文件夹中执行) git rev-parse - -show-toplevel 为 Rails 应用程序包设置本地覆盖 config local.GEM_NAME /path/to/local/git/repository 其中 GEM_NAME 是 gem 的名称,/path/to/local/git/repository 是输出第 2 点中的命令在您的应用程序 Gemfile 中添加以下行: gem 'GEM_NAME', :github => 'GEM_NAME/GEM_NAME', :branch => 'master' Running bundle install 应该给出如下内容: Using GEM_NAME (0.0 .1) 来自 git://github.com/GEM_NAME/GEM_NAME.git (位于 /path/to/local/git/repository),其中 GEM_NAME 是您的 gem 的名称,/path/to/local/git/repository 来自第 2 点最后,运行 bundle list,而不是 gem list,你应该会看到如下内容: GEM_NAME (0.0.1 5a68b88) 其中 GEM_NAME 是你的 gem 的名称
我正在观察使用的一些重要案例:
Rails 4.0.2
ruby 2.0.0p247 (2013-06-27 revision 41674) [x86_64-linux]
Ubuntu 13.10
RubyMine 6.0.3
RubyMine 似乎没有将本地 gem 显示为外部库。可以在此处和此处找到有关该错误的更多信息
当我在本地 gem 中更改某些内容时,为了加载到 rails 应用程序中,我应该停止/启动 rails 服务器
如果我要更改 gem 的版本,停止/启动 Rails 服务器会给我一个错误。为了修复它,我在 Rails 应用程序 Gemfile 中指定 gem 版本,如下所示: gem 'GEM_NAME', '0.0.2', :github => 'GEM_NAME/GEM_NAME', :branch => 'master'
您可以使用源代码引用 gem:
source: 'https://source.com', git repository (:github => 'git/url')
和本地路径
:path => '.../path/gem_name'
。
您可以在本文中了解有关 [Gemfile 及其使用方法] (https://kolosek.com/rails-bundle-install-and-gemfile) 的更多信息。
如果你也想要分支:
gem 'foo', path: "point/to/your/path", branch: "branch-name"
Only gems with a git source can specify a branch.
不定期副业成功案例分享
spring stop
以查看是否确实是问题所在。