Gemfile
在Rails中的作用是什么?
如何使用Gemfile
?
gemfile
是您想要包含在项目中的所有gems列表。它与bundler(也是一个gem)一起使用,以安装、更新、删除和管理您使用的gems。
gemfile
有另一个用途-您可以将gem分组为:development
,:test
,:assets
,:production
等组,Rails将知道何时包含这些gems。例如:
group :development, :test do
gem "rspec-rails"
gem "factory_girl_rails"
gem "guard-rspec"
end
assets
组已被弃用。gemfile
,只需编写要安装的gem即可。gem 'devise'
在您的控制台/cmd/ssh中,请先确保安装了bundler
(捆绑软件)。
$ gem install bundler
bundle install
Gemfile.lock
这个文件列出了所有的gem及其版本和依赖关系,如果您使用文本阅读器打开它,就能看到这一点。当您需要知道安装的gem的哪些版本时,这将非常有用。Gemfile
的更多阅读 - 请参阅bundler页面
有关选择 gem 的信息,您可以从此处开始好的,那么Gemfile.lock是什么?
Gemfile.lock,顾名思义,是所有已安装的gem版本的锁定。因此,如果需要安装Gemfile,则安装锁定文件以及实际需要的版本来启动应用程序。
如果您没有那个特定版本的gems(如Gemfile.lock中指定的),rails将会报错,您必须通过bundle install
安装缺少的gems或手动解决任何冲突(我相信bundler会给您一些提示)。
关于Gemfile.lock
的一些要点
bundle install
时,它会重新生成。如果你不小心删除了Gemfile
,那就倒霉了.. 你应该使用git :)类比解释
你想从零开始制造一辆汽车,需要制造底盘、发动机、化油器、散热器等。
Gem 可以让你使用别人之前制造的汽车零部件
每个制造汽车的人都需要相同的东西。
没有必要重新发明轮子。为什么自己制造发动机等零部件,当你可以直接从货架上拿到呢?如果你能够得到世界上最有才华的工程师开发的最佳引擎之一,而不费吹灰之力,你会花一年时间试图制作自己的引擎吗?
因此,与其自己制造所有零部件,你最好写下一个购物清单,列出所有需要的零部件:
我的朋友,这基本上就是你的 gem 文件!
您的系统可以拥有许多宝石... 因此可以拥有同一gem
的多个版本。
Gemfile
指定了gems
列表及其versions
,每当您运行Rails应用程序或任何带有bundle exec . .
的内容时,都将使用/加载/(如果不存在则安装)这些gems
。
首先,什么是 gem?
根据维基百科:
RubyGems 是 Ruby 编程语言的包管理器,提供了一个标准格式来分发 Ruby 程序和库。
Gemfile
Gemfile 是我们创建的一个文件,用于描述 Ruby 程序的 gem 依赖关系。
现在,用非常简单的话来说:
Gem 可以被认为是你可以在代码中使用的库。 例如:faker gem
你的代码可以使用 faker
gem 的功能来生成虚假数据。
现在,你可以在 gemfile 中列出你的项目所需的所有 gems。 当你执行 bundle install 时,gemfile 中的所有 gems 都会被安装。