Jekyll 依赖管理:正确修改 Gemfile 并避免构建错误
当你在维护 Jekyll 项目时,修改 Gemfile 后却忘记更新 Gemfile.lock,很容易导致构建失败(特别是在 GitHub Actions、Cloudflare Pages 等 CI/CD 环境)。本文总结了常见问题、正确做法和命令技巧,帮你避免踩坑。
1. 基础概念
文件名 | 作用说明 |
---|---|
Gemfile |
声明你项目需要哪些 Ruby gems(插件) |
Gemfile.lock |
锁定 gem 的具体版本,确保不同环境下依赖一致 |
Bundler | 管理上述两个文件、安装和更新依赖的工具 |
2. 问题信息
你删除了某个插件(如 jekyll-jupyter-notebook
)后,仅更新了 Gemfile,没改 Gemfile.lock,结果在 CI 构建时报错:Some dependencies were deleted from your gemfile, but the lockfile can't be updated because frozen mode is set,CI 环境默认开启 frozen
模式,禁止自动更新 Gemfile.lock,以避免依赖变更带来的不确定性。
3. 正确修改依赖的流程
修改 Gemfile
# 删除或注释掉不需要的插件
# gem "jekyll-jupyter-notebook"
允许更新锁文件
bundle config set frozen false
更新依赖并重生成 Gemfile.lock
bundle install
提交改动
4. 快速命令汇总(复制即用)
cd /your/jekyll/project/path
bundle config set frozen false
bundle install
git add Gemfile Gemfile.lock
git commit -m "Update dependencies"
git push