【发布时间】:2023-03-04 04:57:01
【问题描述】:
我有一个构建为 .gem 文件的自定义 gem,我试图从我的 Gemfile 中引用它。我已将 .gem 文件与 .gemspec 一起放在 vendor/gems 文件夹中。我的 Gemfile 有以下行:
gem 'umlgrader', '1.0.0', :path=>'vendor/gems'
当我运行 bundle install 时,它声称找到了 gem,但它说它正在“使用”gem,而不是“安装”它,即使 gem 以前没有安装在我的机器上。当我尝试运行我的应用程序时,当它尝试调用 gem 中的任何方法时,我会收到 NoMethodError。为什么 Bundler 不安装 gem?
我已经通过在该目录中解压缩 gem 然后编辑 Gemfile 来使其工作,如下所示:
gem 'umlgrader', '1.0.0', :path=>'vendor/gems/umlgrader-1.0.0'
此解决方案不太理想。我希望能够使用 Bundler 安装 gem,因为我正在尝试将应用程序部署到 Heroku。我已经尝试了很多我在网上找到的解决方案,但我愿意接受任何建议。
编辑: 我已经浏览过并尝试过的其他一些页面: Bundler: installing a specific .gem file How to use Bundler with offline .gem file? How do I specify local .gem files in my Gemfile?
我还注意到很多人建议指向包含 gem 的 Git 存储库。如果没有必要,我宁愿不这样做。
【问题讨论】:
-
您能否添加一些您尝试过的解决方案的链接?这样我们就可以避免推荐相同的东西。
-
我已经阅读了很多在 Gemfile 中使用 :path 的解决方案,他们都声称它可以正常工作,但显然不行。我也尝试过使用 bundle 包并将所有 gem 放在 vendor/cache 中,这在本地工作,但在我部署到 Heroku 时不能。
标签: ruby-on-rails bundler