jekyll: Exclude doesn't work, getting `ERROR: directory is already being watched!`

I am on (or have tested on) macOS 10+ Jekyll version: 3.5.1

My Reproduction Steps

Run bundle exec jekyll serve for https://github.com/vega/vega-lite

In my config file, I am excluding some directories.

exclude:
  - examples/specs/data
  - examples/compiled/data

However, I’m getting errors for those directories

            Source: /Users/domoritz/Developer/UW/vega-lite
       Destination: /Users/domoritz/Developer/UW/vega-lite/_site
 Incremental build: disabled. Enable with --incremental
      Generating...
                    done in 5.972 seconds.
 Auto-regeneration: enabled for '/Users/domoritz/Developer/UW/vega-lite'
        ** ERROR: directory is already being watched! **

        Directory: /Users/domoritz/Developer/UW/vega-lite/examples/compiled/data

        is already being watched through: /Users/domoritz/Developer/UW/vega-lite/data

        MORE INFO: https://github.com/guard/listen/wiki/Duplicate-directory-errors
        ** ERROR: directory is already being watched! **

        Directory: /Users/domoritz/Developer/UW/vega-lite/examples/specs/data

        is already being watched through: /Users/domoritz/Developer/UW/vega-lite/data

        MORE INFO: https://github.com/guard/listen/wiki/Duplicate-directory-errors
    Server address: http://127.0.0.1:4000/vega-lite/
  Server running... press ctrl-c to stop.

The Output I Wanted

            Source: /Users/domoritz/Developer/UW/vega-lite
       Destination: /Users/domoritz/Developer/UW/vega-lite/_site
 Incremental build: disabled. Enable with --incremental
      Generating...
                    done in 5.972 seconds.
 Auto-regeneration: enabled for '/Users/domoritz/Developer/UW/vega-lite'
    Server address: http://127.0.0.1:4000/vega-lite/
  Server running... press ctrl-c to stop.

About this issue

  • Original URL
  • State: closed
  • Created 7 years ago
  • Comments: 27 (11 by maintainers)

Most upvoted comments

Still having this issue, on Ubuntu inside Windows WSL, with pnpm:

 ** ERROR: directory is already being watched! **

Directory: /home/foo/jekyll/node_modules/.pnpm/registry.npmjs.org/yargs-parser/5.0.0/node_modules/yargs-parser

is already being watched through: /home/foo/jekyll/node_modules/.pnpm/registry.npmjs.org/yargs-parser/5.0.0/node_modules/yargs-parser

MORE INFO: https://github.com/guard/listen/wiki/Duplicate-directory-errors

And a lot of other similar ones. The node_modules is excluded according to the logs

Watcher: Ignoring (?-mix:^node_modules\/)

Yet there is that error. The only way I’ve gotten rid of it is with --no-watch, which obviously doesn’t solve the core issue.

I have this issue with Jekyll 4.2.0 using Ruby 3.0.0 on macOS.

@pganssle Thank you for providing an example.

I can confirm that I am now able to reproduce the issue on Jekyll master

hi, i took a look at listen’s code and the issue seems to be that it sets watchers on all the files but ignores them later, i was going to try writing some patches but haven’t had the time yet

I can agree with @Tazavoo. That’s still an error in Jekyll 4.0.1.