You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Jekyll构建静态网站时bundle加载jekyll命令遇语法错误求助

Jekyll启动报错(SyntaxError: unexpected end)的解决方案

问题背景

克隆旧Jekyll静态网站项目后,运行bundle exec jekyll serve触发语法错误,错误指向jekyll-4.3.3的new.rb文件第168行存在意外的end,已尝试多种网络方案未解决,纠结是否要更换Ruby/Jekyll版本或处理Gem依赖。

错误信息:

bundler: failed to load command: jekyll
(/Users/me/Documents/GitHub/mystie/vendor/bundle/ruby/3.1.0/bin/jekyll)
internal:....y/site_ruby/3.1.0/rubygems/core_ext/kernel_require.rb:37:in require': ......./vendor/bundle/ruby/3.1.0/gems/jekyll-4.3.3/lib/jekyll/commands/new.rb:168: syntax error, unexpected end', expecting end-of-input (SyntaxError)

解决步骤

1. 重置Gem依赖,排除文件损坏

  • 删除项目内的vendor/bundle目录,执行bundle install重新安装所有依赖,避免克隆过程中依赖文件损坏。
  • 若项目带了Gemfile.lock,直接删除该文件后再执行bundle install,让Bundler根据本地环境生成适配的锁文件。

2. 验证Ruby与Jekyll版本兼容性

  • Jekyll 4.3.3兼容Ruby 2.7.0+,但Ruby 3.1.x可能存在个别Gem适配问题:用rbenv或rvm快速切换到Ruby 2.7.x版本,重新安装依赖后启动项目测试。
  • 尝试降级Jekyll版本:修改项目根目录Gemfile,将gem "jekyll"改为gem "jekyll", "~> 4.2.0",执行bundle update jekyll后重新启动。

3. 修复损坏的Jekyll核心文件

若重新安装依赖后仍报同一文件错误,说明本地缓存的Jekyll Gem损坏:

  • 执行gem uninstall jekyll卸载所有Jekyll版本,再通过bundle install重新安装项目指定的版本。

内容的提问来源于stack exchange,提问作者Matt Fairweather

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 17:03:19