使用 RVM Gemsets & Bundler & RubyMine

2024-01-03

我使用 RVM 来管理 Ruby 版本。
在我的项目中,我使用 Bundler 来管理项目的 gem。

RVM 也有宝石集。
宝石集中的宝石与 Bundler 的宝石没有任何关系。← 这是正确的吗?
我得出这个结论是因为 gem 文件存储在不同的位置:
RVM 宝石组:~/.rvm/gems/ruby-2.0.0-p247@myApp
捆绑器:[my_app_dir]/vendor/bundle/gems
因此应用程序使用 Bundler gem,而不是 RVM gemset gem。

但是当我将 gem 添加到 Gemfile 时,RubyMine IDE 向我显示警告,该 gem 不在 RVM gemset 中。所以我也将这个 gem 添加到 RVM gemset 中(只是为了摆脱这个警告)。

所以问题是:

  1. 在这两个地方(RVM Gemset 和 Gemfile)添加 gem 有什么充分的理由吗?
  2. 如果不是,那么为什么 RubyMine 会警告我这个问题?

  1. 在这两个地方(RVM Gemset 和 Gemfile)添加 gem 有什么充分的理由吗?

gemset 是偶然的,Gemfile 绝对是声明依赖项的地方。存放这些宝石的位置取决于您。

听起来 Bundler 被配置为将它们存储在项目本地路径中,但您希望它们位于 gemset 中。 Bundler 通过运行获得该配置bundle install --path vendor/bundle/gems在某一点。它将配置存储在其项目配置文件中project_dir/.bundle/config:

BUNDLE_PATH: vendor/bundle/gems

我不熟悉 Rubymine,但是如果您使用 Bundler 运行 Rails 服务器(即bundle exec rails server)您可以忽略该警告。 Bundler 将正确加载 Gemfile 中列出的 gem。

如果你想使用宝石insteadBundler 缓存中,您只需从 Bundler 配置文件中删除该行并重新安装 gemsbundle install.

  1. 如果不是,那么为什么 RubyMine 会警告我这个问题?

我的猜测是 Rubymine 没有读取 Bundler 项目配置(在project_path/.bundle/config)并且不明白宝石安装在哪里。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 RVM Gemsets & Bundler & RubyMine 的相关文章

随机推荐