Bundler:什么:gemfile中的require => nil是什么意思?
这个gemfile条目中的nil是什么意思?
gem "hub", ">= 1.10.2", :require => nil
我发现这个问题并回答错误;
Bundler:什么:Gemfile中的require => false是什么意思?
在这种情况下,nil的行为与false相同吗?
是的, nil
和false
在这里表现相同:它使Bundler不需要指定的gem。
要求nil
或false
意味着捆绑器不会加载( require
)特定的gem。 但是,它们将位于$:
加载路径中,因此您可以在需要使用它们时明确要求它们。 对于仅在特殊情况下需要的gem(例如外部脚本,rake任务等),使用它是一个好习惯。
每当你在你的Gemfile
指定一个Gem并运行bundle install
,bundler就会在你的应用程序中安装指定的gem和加载代码,方法是将Gemfile
require 'whenever'
,这样捆绑器将为你的Rails中的所有Gems加载代码应用程序,你可以从任何gem调用任何方法没有任何痛苦,就像你大多数时间做的那样。
但Gems喜欢whenever,faker or capistrano
你的应用程序代码中你不需要你需要的东西,你需要在schedule.rb
文件中的代码,以管理deploy.rb文件中的crons和capistrano代码,以自定义部署配方,所以你不需要加载在您的应用程序代码中的这些gem的代码以及您想要从这些gem调用任何方法的任何地方,您可以通过将“ require "whenever"
置于require "whenever"
手动要求这些gem。 所以你把Gemfile中的:require => false
或:require => nil
(两者都意味着相同)用于这些Gems,这样Bundler就会安装那个Gem但不加载Gem本身的代码,你可以随时随地做通过简单地在您的情况下像需要’随时’。