这个gemfile条目中的nil是什么意思?
gem "hub", ">= 1.10.2", :require => nil
我发现这个问题并回答错误;
Bundler: What does :require => false in a Gemfile mean?
在这种情况下,nil的行为与false相同吗?
答案 0 :(得分:14)
是的,nil
和false
在这里的行为相同:它使Bundler不需要指定的gem。
答案 1 :(得分:5)
要求nil
或false
表示捆绑商不会加载(require
)特定的宝石。但是,它们将位于$:
加载路径中,因此您可以在需要使用它们时明确要求它们。对于在特殊情况下仅需要的宝石(例如外部脚本,rake任务等),使用它是一个好习惯。
答案 2 :(得分:0)
每当您在Gemfile
中指定Gem并运行 bundle install
时,bundler将通过放置require 'whenever'
并在此应用中为该Gem安装指定的gem和加载代码,这样捆绑将在你的Rails应用程序中加载所有Gems的代码,你可以毫不费力地从任何Gem调用任何方法,就像你大部分时间一样。
但是whenever,faker or capistrano
之类的Gems是您在schedule.rb
文件中用于管理deploy.rb
文件中的crons和capistrano代码以自定义部署的代码所需的应用程序代码中不需要的内容配方,所以你不需要在你的应用程序代码中加载这些宝石的代码
无论你想从这些宝石中调用任何方法,你都可以通过 require "whenever"
自己手动要求这些宝石。所以你在这些Gems中将:require => false
或:require => nil
放在你的Gemfile中(两者都是相同的),这样捆绑包就会安装那个Gem而不是加载Gem本身的代码,你可以随时随地做通过简单地提出要求'无论何时'在你的情况下。