Jekyll on windows

I’m trying to get jekyll to run on windows, I have the latest devkit version of ruby installed and latest jekyll.

I keep getting the following error:

Configuration file: C:/Users/metam/Documents/jekyll/blog/_config.yml
            Source: C:/Users/metam/Documents/jekyll/blog
       Destination: C:/Users/metam/Documents/jekyll/blog/_site
 Incremental build: disabled. Enable with --incremental
       Jekyll Feed: Generating feed for posts
                    done in 0.451 seconds.
  Please add the following to your Gemfile to avoid polling for changes:
    gem 'wdm', '>= 0.1.0' if Gem.win_platform?
 Auto-regeneration: enabled for 'C:/Users/metam/Documents/jekyll/blog'
      Jekyll 4.2.2   Please append `--trace` to the `serve` command
                     for any additional information or backtrace.
C:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/jekyll-4.2.2/lib/jekyll/commands/serve/servlet.rb:3:in `require': cannot load such file -- webrick (LoadError)
        from C:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/jekyll-4.2.2/lib/jekyll/commands/serve/servlet.rb:3:in `<top (required)>'
        from C:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/jekyll-4.2.2/lib/jekyll/commands/serve.rb:179:in `require_relative'
        from C:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/jekyll-4.2.2/lib/jekyll/commands/serve.rb:179:in `setup'
        from C:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/jekyll-4.2.2/lib/jekyll/commands/serve.rb:100:in `process'
        from C:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/jekyll-4.2.2/lib/jekyll/command.rb:91:in `block in process_with_graceful_fail'
        from C:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/jekyll-4.2.2/lib/jekyll/command.rb:91:in `each'
        from C:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/jekyll-4.2.2/lib/jekyll/command.rb:91:in `process_with_graceful_fail'
        from C:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/jekyll-4.2.2/lib/jekyll/commands/serve.rb:86:in `block (2 levels) in init_with_program'
        from C:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/mercenary-0.4.0/lib/mercenary/command.rb:221:in `block in execute'
        from C:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/mercenary-0.4.0/lib/mercenary/command.rb:221:in `each'
        from C:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/mercenary-0.4.0/lib/mercenary/command.rb:221:in `execute'
        from C:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/mercenary-0.4.0/lib/mercenary/program.rb:44:in `go'
        from C:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/mercenary-0.4.0/lib/mercenary.rb:21:in `program'
        from C:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/jekyll-4.2.2/exe/jekyll:15:in `<top (required)>'
        from C:/Ruby31-x64/bin/jekyll:32:in `load'
        from C:/Ruby31-x64/bin/jekyll:32:in `<main>'

Any ideas on how to fix it?

Hey @uxai

I have had similar problems on windows, but as the log statement suggests, adding “wdm” to the Gemfile would solve the problem. Add this to the Gemfile:

gem "wdm", :platforms => [:mingw, :x64_mingw, :mswin]

If “webrick” isn’t there, add it too. webrick is responsible for creating the localhost server with the port. If it isn’t there it can also create error:

gem "webrick"

Then run

bundle install

I hope it fixes the problem :slight_smile:

To follow up on the reply from @gouravkhunger, they are correct that this is a webrick issue. The package used to be part of Ruby and then was separated so now you need to install it manually.

Run the following commands and you should be good to go (although I do not know if the bundle update is absolutely required, but it doesn’t hurt :slight_smile:

Also, if you encounter an error with Jekyll Feed, then delete the gemfile.lock file and re-run a bundle install and bundle update

bundle add webrick
bundle install
bundle update