簡體   English   中英

位於github上的寶石不需要rubygems的寶石

[英]Gem located on github don't require gems from rubygems

我的Gemfile中有這一行:

gem 'gem_name', '1.0.27', :git => "git@github.com:company/gem_name.git"

gem_name是我構建的一個gem,它存儲在github上,並且在我編寫的一個gem代碼文件中:

require 'cssmin' 

(我在gem代碼文件中有更多的gem要求)。

當我在應用程序中運行bundle時,一切正常,並且gem_name正確安裝,但是當我運行rails s時,出現此錯誤:

無法加載此類文件-CSSMIN

您知道為什么我不能在存儲在github上的gem代碼文件中要求rubygems提供gem嗎?

編寫自己的gem時,應將其所有要求包括在.gemspec文件中。 這樣, gem程序可以確保在用戶運行gem install gem_name時安裝所有依賴gem install gem_name ,並且在運行require 'my_dependency'行時您的代碼不會崩潰。

如果要在代碼中使用其他庫,則需要兩個部分。 Gemspec文件可確保已安裝依賴項。 當您的代碼運行時, require語句將其加載。

在這種情況下,您應該在add_runtime_dependency中使用add_runtime_dependency方法 像這樣:

Gem::Specification.new do |s|
  # Required attributes omitted
  s.add_runtime_dependency('cssmin') # If you don't care which version is installed
  s.add_runtime_dependency('nokogiri', '>= 1.2') # If you want a version greater than or equal to 1.2
  s.add_runtime_dependency('kaminari', '~> 1.1') # If you want a version between 1.1 and 1.9.
end

您可以在Rubygems文檔中閱讀有關聲明依賴關系的更多信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM