升级Jekyll 4后报错:File类无exists?方法(NoMethodError)
解决方案
核心问题
Ruby 3.0及以上版本已移除File.exists?这个过时方法,替代为File.exist?(注意缺少末尾的s),你的自定义插件sitemap_generator.rb仍在使用旧方法,导致报错。
修复步骤
- 打开项目根目录下的
_plugins/sitemap_generator.rb文件 - 定位到第129行的代码:
if File.exists?(page.path) - 将其修改为:
if File.exist?(page.path) - 保存文件后,重新执行
bundle exec jekyll serve或bundle exec jekyll build即可正常运行。
额外提示
- 错误开头的
DidYouMeandeprecation警告属于次要问题,不影响核心运行,若要消除可升级Bundler至2.3及以上版本。 - Jekyll 4.0.1与Ruby 3.2.0本身兼容,问题仅出在自定义插件的API适配。
内容的提问来源于stack exchange,提问作者Bora Turan
相关产品推荐
相关产品推荐

