2016-02-09 2 views
2

Я использую Jekyll 3.1.1 для создания блога, и недавно я представил Git-крючок, чтобы автоматически публиковать изменения предварительного нажатия.Исключая каталог из часов Jekyll

После введения этого крючка, я начал получать следующее сообщение об ошибке, когда я бегу jekyll serve:

Configuration file: /Users/egillespie/Projects/blog.givingjar.org/_config.yml 
      Source: /Users/egillespie/Projects/blog.givingjar.org 
     Destination: /Users/egillespie/Projects/blog.givingjar.org/_site 
Incremental build: disabled. Enable with --incremental 
     Generating... 
        done in 0.223 seconds. 
     ** ERROR: directory is already being watched! ** 

     Directory: /Users/egillespie/Projects/blog.givingjar.org/node_modules/git-scripts/bin/hooks 

     is already being watched through: /Users/egillespie/Projects/blog.givingjar.org/node_modules/git-scripts/bin/hooks 

     MORE INFO: https://github.com/guard/listen/wiki/Duplicate-directory-errors 
Auto-regeneration: enabled for '/Users/egillespie/Projects/blog.givingjar.org' 
Configuration file: /Users/egillespie/Projects/blog.givingjar.org/_config.yml 
    Server address: http://127.0.0.1:4000/ 
    Server running... press ctrl-c to stop. 

Что свойственно то, что я исключаю node_modules в _config.yml:

exclude: 
    - Gemfile 
    - Gemfile.lock 
    - LICENSE 
    - README.md 
    - package.json 
    - Gruntfile.js 
    - node_modules 

node_modules правильно быть исключены из здания (т. е. нет node_modules в _site).

Я также за исключением node_modules в .gitignore:

# project 
node_modules 
_site* 
.sass-cache 
.jekyll-metadata 

# general 
.DS_Store 
Thumbs.db 
ehthumbs.db 

на основе this GitHub issue и this commit кажется, как node_modules должны быть исключены из часов, но это не так. Я не могу расшифровать из документации, если есть другой способ исключить файлы из часов.

Каков наилучший способ для меня исключить каталог из часов и избежать ошибки, описанной выше?

+0

Решена ли ваша проблема? Если нет, можете ли вы больше узнать о самом крючке? –

+0

Вы когда-нибудь решали это? Я боюсь с тем же выпуском часов через год ... –

+0

@RossR Я так и не смог решить эту проблему. Я перешел на Netlify, поэтому мне больше не понадобится Git-hook, который работал вокруг сценария, вызвавшего эту проблему. –

ответ

1

Значение для исключения параметра в _config.yml должен быть массивом т.е.

exclude: ['_site', 'node_modules', ...] 

Источник: Jekyll Documentation - Configuration

+1

Синтаксис, который я использую, - это альтернативный подход к созданию массива в YAML. Тем не менее, я попытался сделать это по-своему, и я все еще получаю ошибку. http://www.yaml.org/spec/1.2/spec.html#id2759963 –

+1

Я нашел это как рабочее исправление. Посмотрите, работает ли это для вас. http://stackoverflow.com/a/36861807/428901 –

+0

Спасибо, что указал на это обходное решение, Джабран. К сожалению, он не избавится от ошибки в моем случае. –

0

Попробуйте это на свой _config.yml:

keep_files: [node] 

где node папка для исключения из --watch. Что это будет делать, так это сохранение папки nodeuntouched by jekyll build. Затем добавьте все файлы, которые вы хотите сохранить на сайте root, но не отображены Jekyll.

+0

Я добавил 'node_modules', и я все еще получаю ошибку. Документация предполагает, что 'keep_files' сообщает Jekyll оставить файлы в' _site' в одиночку. К сожалению, 'node_modules' находится в базе моего проекта, и Node не предлагает способ изменить это. Я попытался передать '../ node_modules'' keep_files', чтобы увидеть, могу ли я обмануть Jekyll, но это тоже не сработало. –

+1

Хмм ... Попробуйте 'exclude: [node_modules, Gemfile и т. Д.]' И посмотрите, как это происходит ...Если это не сработает, и ни один из ответов здесь не работает, вы всегда можете попросить [Jekyll Talk] (https://talk.jekyllrb.com). –

+0

Я попробовал 'exclude: [node_modules, Gemfile, etc]', также безрезультатно. Я проведу Jekyll Talk и отчитаюсь. Благодарю. –