使用 Bundler 搭配 Jekyll
Bundler 通过跟踪和安装所需的确切 gem 和版本,为 Ruby 项目提供一致的环境。
Bundler 可以是与 Jekyll 搭配使用的出色工具。因为它按每个项目跟踪依赖项,所以如果你需要在不同的项目中运行不同版本的 Jekyll,它会特别有用。
此外,因为它可以(可选地)在项目文件夹中安装依赖项,所以它可以帮助你避免可能遇到的权限问题。使用 Jekyll 的通常方法是将 Jekyll 安装到系统的默认 gem 安装目录,然后运行 jekyll new
。在本教程中,我们将向你展示如何使用 Bundler 创建新的 Jekyll 项目,并且无需在项目目录外部安装 gem。
这不是开始使用 Jekyll 的最简单方法
本教程帮助你使用 Bundler 设置 Jekyll,并且可以选择不进行任何系统范围的 gem 安装。如果你更喜欢将 jekyll 命令安装到你的默认 gem 安装目录,你可能需要 快速入门。
开始之前
要完成本教程,你需要安装 Ruby 和 Bundler。你可以在其网站上找到安装说明。
初始化 Bundler
首先,为你的项目创建一个新目录并运行 bundle init
。这会创建一个新的 Bundler 项目(通过创建一个空的 Gemfile)。
mkdir my-jekyll-website
cd my-jekyll-website
bundle init
配置 Bundler 安装路径
此步骤是可选的。在此步骤中,我们将配置 Bundler 以将 gem 安装在 ./vendor/bundle/
项目子目录中。这样做的优点是,Bundler 将在您的项目文件夹中安装 gem,而不是 gem install
所用的位置。这可以帮助您避免在 gem 安装过程中可能遇到的权限错误,具体取决于您安装 Ruby 的方式。如果您跳过此步骤,Bundler 将把您的依赖项安装到 gem install
所用的位置。
bundle config set --local path 'vendor/bundle'
Bundler 配置是持久的
每个项目仅需要执行此步骤一次。Bundler 将您的配置保存在 ./.bundle/config
中,因此以后的 gem 将安装到相同的位置。
添加 Jekyll
现在,我们将使用 Bundler 将 Jekyll 添加为我们新项目的依赖项。此命令将把 Jekyll gem 添加到我们的 Gemfile 中,并将其安装到 ./vendor/bundle/
文件夹(如果您未设置自定义路径,则安装到您的默认 gem 安装目录)。
bundle add jekyll
创建 Jekyll 脚手架
现在 Jekyll 已安装,我们可以使用它为我们的网站创建脚手架。我们需要 --force
参数,因为我们的文件夹不为空 - 其中已有一些 Bundler 文件。我们单独运行 bundle install
,因为如果 Gemfile 已存在,Jekyll 会感到困惑。
bundle exec jekyll new --force --skip-bundle .
bundle install
提供网站
您的新网站已准备就绪!您可以使用 bundle exec jekyll serve
提供网站,并访问 http://127.0.0.1:4000。在此基础上,您可以继续自行开发网站。所有常规 Jekyll 命令均可供您使用,但您应在它们之前加上 bundle exec
,以便 Bundler 运行您项目文件夹中安装的 Jekyll 版本。
提交到源代码控制
如果您将新网站存储在版本控制中,您将需要忽略 ./vendor/
和 ./.bundle/
文件夹,因为它们包含用户或平台特定的信息。新用户将能够根据 Gemfile
和 Gemfile.lock
安装正确的依赖项,这两者都应进行签入。如果您愿意,可以使用此 .gitignore
来开始。
.gitignore
# Ignore metadata generated by Jekyll
_site/
.sass-cache/
.jekyll-cache/
.jekyll-metadata
# Ignore folders generated by Bundler
.bundle/
vendor/