Docs header transparent bg

如何將 Bundler 與 Ruby 搭配使用

設定載入路徑,以便 Gemfile 中的所有依賴項都可被需要

require 'bundler/setup'
require 'nokogiri'

僅將指定群組中的寶石新增至載入路徑。如果您想要預設群組中的寶石,請務必將其包含在內

require 'bundler'
Bundler.setup(:default, :ci)
require 'nokogiri'

深入了解:群組

相容性

Ruby 2.0 和 RubyGems 2.0 都需要 Bundler 1.3 或更新版本。如果您對 Bundler 和您的系統之間的相容性有任何疑問,請查看相容性清單。

深入了解:相容性

設定您的應用程式以使用 Bundler

Bundler 確保 Ruby 可以找到 Gemfile 中的所有寶石(及其所有依賴項)。如果您的應用程式是 Rails 應用程式,您的預設應用程式已經具有呼叫 bundler 所需的程式碼。對於其他類型的應用程式(例如 Sinatra 應用程式),您需要在嘗試需要任何寶石之前設定 bundler。在您的應用程式載入的第一個檔案頂端(對於 Sinatra,呼叫 require 'sinatra' 的檔案),放置下列程式碼

require 'bundler/setup'

這將自動偵測您的 Gemfile,並讓您 Gemfile 中的所有寶石都可供 Ruby 使用(技術上來說,它將寶石「放在載入路徑上」)。

現在您的程式碼可供 Ruby 使用,您可以需要您需要的寶石。例如,您可以 require 'sinatra'。如果您有許多依賴項,您可能想要說「需要我 Gemfile 中的所有寶石」。為此,請在 require 'bundler/setup' 之後立即放置下列程式碼

Bundler.require(:default)

對於我們的範例 Gemfile,這行與下列完全相同

require 'rails'
require 'rack-cache'
require 'nokogiri'

精明的讀者會注意到需要 rack-cache 寶石的正確方式是 require 'rack/cache',而不是 require 'rack-cache'。若要告訴 bundler 使用 require 'rack/cache',請更新您的 Gemfile

source 'https://rubygems.org'

gem 'rails', '5.0.0'
gem 'rack-cache', require: 'rack/cache'
gem 'nokogiri', '~> 1.4.2'

對於如此小的 Gemfile,我們建議您略過 Bundler.require,並手動需要寶石(尤其是因為需要在 Gemfile 中放入 :require 指令)。對於更大的 Gemfile,使用 Bundler.require 可讓您略過重複大量的需求堆疊。

如果您發現錯誤或發現有遺漏之處,請在 GitHub 上編輯此文件