Bundler 通过跟踪和安装所需的确切的 gems 和版本,为 Ruby 项目提供了一个一致的环境。
Bundler 是一个很好的工具,可以与Jekyll一起使用。因为它为每个项目跟踪依赖关系,所以如果您需要在不同的项目中运行不同版本的 Jekyll ,它特别有用。
此外,由于它可以(可选)在项目文件夹中安装依赖项,因此可以帮助您避免可能遇到的权限问题。使用 Jekyll 的通常方法是将 Jekyll 安装到系统的默认 gem 安装目录,然后运行 jekyll new
。在本教程中,我们将向您展示如何使用 Bundler 创建一个新的 Jekyll 项目,而无需在项目目录外安装 gem 。
这不是开始使用Jekyll的最简单方法
本教程帮助您使用Bundler设置Jekyll,并且可以选择不安装任何系统范围的gem。如果您更喜欢将jekyll命令安装到默认的gem安装目录,那么您可能需要阅读 Jekyll快速入门 。
在开始之前
要完成本教程,您需要安装 Ruby 和 Bundler 。您可以在他们的网站上找到安装说明。
初始化 Bundler
要做的第一件事是为您的项目创建一个新目录,并运行 bundle init
。这将创建一个新的Bundler项目(通过创建一个空的Gemfile)。
mkdir my-jekyll-website
cd my-jekyll-website
bundle init
配置 Bundler 的 Install Path
此步骤是可选的。在这一步中,我们将配置 Bundler 以便在 ./vendor/bundle/
项目子目录中安装 germs 。这样做的好处是bundler将在您的项目文件夹中安装 gems ,而不是 gem install
所使用的位置。这可以帮助您避免在 gem 安装过程中可能出现的权限错误,具体取决于您安装Ruby的方式。如果您跳过这一步,Bundler将把您的依赖项安装到 gem install
所使用的位置。
bundle config set --local path 'vendor/bundle'
Bundler配置是持久的
每个项目只需要执行一次此步骤。Bundler将您的配置保存在 ./.bundle/config
中,因此将来的 gems 将安装到相同的位置。
添加 Jekyll
现在,我们将使用Bundler添加Jekyll作为我们新项目的依赖项。此命令将 Jekyll gem 添加到我们的 Gemfile 中,并将其安装到 ./vendor/bundle/
文件夹(或者您默认的gem安装目录,如果您没有设置自定义路径的话)。
bundle add jekyll
创建一个 Jekyll Scaffold
现在Jekyll已经安装好了,我们可以用它为我们的网站创建 scaffolding 。我们需要--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/
and ./.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/