首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >bundler:未能加载命令: jekyll和未定义方法`relative_directory‘for nil:NilClass (NoMethodError)

bundler:未能加载命令: jekyll和未定义方法`relative_directory‘for nil:NilClass (NoMethodError)
EN

Stack Overflow用户
提问于 2022-07-16 19:01:38
回答 1查看 135关注 0票数 0

运行bundle exec jekyll serve时,我得到了bundler: failed to load command: jekyll

我的环境:

代码语言:javascript
运行
复制
macOS 12.0.1
jekyll 4.2.2
ruby 3.1.2p20 (2022-04-12 revision 4491bb740a) [x86_64-darwin21]

bundle exec jekyll serve --trace给了我:

代码语言:javascript
运行
复制
bundler: failed to load command: jekyll (/Users/Sixian/.gem/ruby/2.7.1/bin/jekyll)
/Users/Sixian/my-digital-garden/_plugins/empty_front_matter_note_injector.rb:11:in `block in <top (required)>': undefined method `relative_directory' for nil:NilClass (NoMethodError)

  Dir.glob(site.collections['notes'].relative_directory + '/**/*.md').each do |filename|
                                    ^^^^^^^^^^^^^^^^^^^
        from /Users/Sixian/.gem/ruby/2.7.1/gems/jekyll-4.2.2/lib/jekyll/hooks.rb:103:in `block in trigger'
        from /Users/Sixian/.gem/ruby/2.7.1/gems/jekyll-4.2.2/lib/jekyll/hooks.rb:102:in `each'
        from /Users/Sixian/.gem/ruby/2.7.1/gems/jekyll-4.2.2/lib/jekyll/hooks.rb:102:in `trigger'
        from /Users/Sixian/.gem/ruby/2.7.1/gems/jekyll-4.2.2/lib/jekyll/site.rb:38:in `initialize'
        from /Users/Sixian/.gem/ruby/2.7.1/gems/jekyll-4.2.2/lib/jekyll/commands/build.rb:30:in `new'
        from /Users/Sixian/.gem/ruby/2.7.1/gems/jekyll-4.2.2/lib/jekyll/commands/build.rb:30:in `process'
        from /Users/Sixian/.gem/ruby/2.7.1/gems/jekyll-4.2.2/lib/jekyll/command.rb:91:in `block in process_with_graceful_fail'
        from /Users/Sixian/.gem/ruby/2.7.1/gems/jekyll-4.2.2/lib/jekyll/command.rb:91:in `each'
        from /Users/Sixian/.gem/ruby/2.7.1/gems/jekyll-4.2.2/lib/jekyll/command.rb:91:in `process_with_graceful_fail'
        from /Users/Sixian/.gem/ruby/2.7.1/gems/jekyll-4.2.2/lib/jekyll/commands/serve.rb:86:in `block (2 levels) in init_with_program'
        from /Users/Sixian/.gem/ruby/2.7.1/gems/mercenary-0.4.0/lib/mercenary/command.rb:221:in `block in execute'
        from /Users/Sixian/.gem/ruby/2.7.1/gems/mercenary-0.4.0/lib/mercenary/command.rb:221:in `each'
        from /Users/Sixian/.gem/ruby/2.7.1/gems/mercenary-0.4.0/lib/mercenary/command.rb:221:in `execute'
        from /Users/Sixian/.gem/ruby/2.7.1/gems/mercenary-0.4.0/lib/mercenary/program.rb:44:in `go'
        from /Users/Sixian/.gem/ruby/2.7.1/gems/mercenary-0.4.0/lib/mercenary.rb:21:in `program'
        from /Users/Sixian/.gem/ruby/2.7.1/gems/jekyll-4.2.2/exe/jekyll:15:in `<top (required)>'
        from /Users/Sixian/.gem/ruby/2.7.1/bin/jekyll:25:in `load'
        from /Users/Sixian/.gem/ruby/2.7.1/bin/jekyll:25:in `<top (required)>'
        from /Users/Sixian/.gem/ruby/2.7.1/gems/bundler-2.3.18/lib/bundler/cli/exec.rb:58:in `load'
        from /Users/Sixian/.gem/ruby/2.7.1/gems/bundler-2.3.18/lib/bundler/cli/exec.rb:58:in `kernel_load'
        from /Users/Sixian/.gem/ruby/2.7.1/gems/bundler-2.3.18/lib/bundler/cli/exec.rb:23:in `run'
        from /Users/Sixian/.gem/ruby/2.7.1/gems/bundler-2.3.18/lib/bundler/cli.rb:483:in `exec'
        from /Users/Sixian/.gem/ruby/2.7.1/gems/bundler-2.3.18/lib/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
        from /Users/Sixian/.gem/ruby/2.7.1/gems/bundler-2.3.18/lib/bundler/vendor/thor/lib/thor/invocation.rb:127:in `invoke_command'
        from /Users/Sixian/.gem/ruby/2.7.1/gems/bundler-2.3.18/lib/bundler/vendor/thor/lib/thor.rb:392:in `dispatch'
        from /Users/Sixian/.gem/ruby/2.7.1/gems/bundler-2.3.18/lib/bundler/cli.rb:31:in `dispatch'
        from /Users/Sixian/.gem/ruby/2.7.1/gems/bundler-2.3.18/lib/bundler/vendor/thor/lib/thor/base.rb:485:in `start'
        from /Users/Sixian/.gem/ruby/2.7.1/gems/bundler-2.3.18/lib/bundler/cli.rb:25:in `start'
        from /Users/Sixian/.gem/ruby/2.7.1/gems/bundler-2.3.18/exe/bundle:48:in `block in <top (required)>'
        from /Users/Sixian/.gem/ruby/2.7.1/gems/bundler-2.3.18/lib/bundler/friendly_errors.rb:120:in `with_friendly_errors'
        from /Users/Sixian/.gem/ruby/2.7.1/gems/bundler-2.3.18/exe/bundle:36:in `<top (required)>'
        from /Users/Sixian/.gem/ruby/3.0.0/bin/bundle:23:in `load'
        from /Users/Sixian/.gem/ruby/3.0.0/bin/bundle:23:in `<main>'

gem env给了我:

代码语言:javascript
运行
复制
  - RUBYGEMS VERSION: 3.3.11
  - RUBY VERSION: 3.1.2 (2022-04-12 patchlevel 20) [x86_64-darwin21]
  - INSTALLATION DIRECTORY: /Users/Sixian/.gem/ruby/2.7.1
  - USER INSTALLATION DIRECTORY: /Users/Sixian/.gem/ruby/3.1.0
  - RUBY EXECUTABLE: /usr/local/opt/ruby/bin/ruby
  - GIT EXECUTABLE: /usr/local/bin/git
  - EXECUTABLE DIRECTORY: /Users/Sixian/.gem/ruby/2.7.1/bin
  - SPEC CACHE DIRECTORY: /Users/Sixian/.gem/specs
  - SYSTEM CONFIGURATION DIRECTORY: /usr/local/Cellar/ruby/3.1.2/etc
  - RUBYGEMS PLATFORMS:
     - ruby
     - x86_64-darwin-21
  - GEM PATHS:
     - /Users/Sixian/.gem/ruby/2.7.1
     - /Users/Sixian/.rubies/ruby-2.7.1/lib/ruby/gems/2.7.0
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :backtrace => false
     - :bulk_threshold => 1000
     - "gem" => "--no-document"
  - REMOTE SOURCES:
     - https://rubygems.org/
  - SHELL PATH:
     - /Users/Sixian/.gem/ruby/3.0.0/bin
     - /usr/local/opt/ruby/bin
     - /usr/local/lib/ruby/gems/3.0.0/bin
     - /usr/local/opt/ruby/bin
     - /usr/local/lib/ruby/gems/3.0.0/bin
     - /Users/Sixian/.gem/ruby/3.0.0/bin
     - /usr/local/opt/ruby/bin
     - /usr/local/lib/ruby/gems/3.0.0/bin
     - /Users/Sixian/.gem/ruby/2.7.0/bin
     - /Users/Sixian/.gem/ruby/2.7.1/bin
     - /Users/Sixian/.rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/bin
     - /Users/Sixian/.rubies/ruby-2.7.1/bin
     - /usr/local/bin
     - /Users/Sixian/.bin
     - /usr/local/bin
     - /usr/bin
     - /bin
     - /usr/sbin
     - /sbin
     - /Users/Sixian/.gem/ruby/3.0.0/bin
     - /usr/local/opt/ruby/bin
     - /usr/local/lib/ruby/gems/3.0.0/bin
     - /Users/Sixian/.gem/ruby/2.7.0/bin
     - /Users/Sixian/.bin

我想要创建另一个类似博客的页面,它将由一个新创建的文件夹提供,类似于post页面。我猜想,这个错误是由于我在试图向config.yml文件中添加某些内容时,对Collections文件进行了修改,但我不确定。我对jekyll和ruby环境很陌生,任何指导、支持和进一步的问题都会非常感谢和帮助。

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2022-07-22 00:05:57

这是我的_config.yml文件:

代码语言:javascript
运行
复制
include:             ['_pages']
exclude:             ['_includes/notes_graph.json']
# You may need to change the base URL depending on your deploy configuration.
# Specifically, when using GitHub Pages, the baseurl should point to where GitHub
# Pages deploys your repository (which is usually the repository name).
baseurl:             ''

# If you are using a host that cannot resolve URLs that do
# not end with .html (such as Neocities), set this to 'true'.
use_html_extension:  false

# Set to `true` to open non-internal links in new tabs, or
# set to `false` to open non-internal links in current tab.
open_external_links_in_new_tab: true

permalink:           pretty
relative_permalinks: false

plugins:
  - jekyll-last-modified-at

sass:
  sass_dir:          _sass
  style:            :compressed

collections:
  writing: 
    output: true 
    permalink: /:slug

    
defaults:
  - scope:
      path: "**/*"
    values:
      layout: "default"
  - scope:
      path: "_notes/**/*.md"
    values:
      layout: "note"

assets:
   sources:
     -_assets/fonts/fraunces
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73006933

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档