Jekyll компиляция кажется ПУТЕМ слишком медленным

Я создаю сайт с Jekyll в первый раз. Я люблю его до сих пор; моя единственная проблема - это очень длительное время сборки. Прямо сейчас, когда я запускаю jekyll build, для создания сайта требуется около 30 секунд.

30 секунд может показаться не очень много, но на данный момент весь сайт имеет только одно сообщение, 8 включает в себя 8 макетов и 2 небольших плагина. Я не злоупотреблял жидкими тегами, насколько мне известно, и если я удалю плагины, все равно потребуется столько же времени.

При поиске ответа все, что я могу найти, это люди, у которых есть огромные блоги с сотнями сообщений. Поскольку у меня есть только одна запись, это, очевидно, не проблема, - там что-то еще происходит, чтобы сделать так, чтобы она длилась долго.

Вот мой репозиторий github моего сайта: https://github.com/keithpickering/kpd/

Мои вопросы таковы:

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

  • Если Jekyll по своей сути медленный, есть простой способ скомпилировать мои CSS и JS отдельно, оставив Jekyll иметь дело только с разметкой? Прямо сейчас у меня есть Jekyll игнорировать мои "css" и "js" папки, вместо этого Grund minify, prefix и компилирует эти файлы автоматически. Я также никогда не использовал Grunt раньше, поэтому я понятия не имею, если это какое-то абсурдно хакерское решение, которое я использую.

Спасибо за помощь!

EDIT: Должен был упомянуть об этом раньше, но я нахожусь в Windows 8.1 x64. Я начинаю думать, что Jekyll просто имеет шаткую поддержку Windows.

Ответы

Ответ 1

Я столкнулся с подобной проблемой, но, к счастью, нашел причину и решение:

Моя установка jekyll не использовала никаких плагинов, никаких сложных тегов с жидкостью, содержала только 3 образца сообщений и ничего больше. Но создание сайта по-прежнему занимало в среднем 6 секунд.

Только когда я шаг за шагом удалял все в директории, я узнал, что вызывает длительное время сборки: папка node_modules.

Вы можете исключить каталог node_modules из преобразования jekyll, поставив следующее в _config.yml:

exclude: [node_modules]

Или:

exclude:
    - node_modules

Более подробную информацию о exclude можно найти в документации jekyll .

Ответ 2

Вы можете сделать только последнее сообщение:

jekyll serve --watch --limit_posts 1

Это почти в два раза быстрее, в моем случае.

UPDATE:

Еще лучше, перестройте только то, что изменилось:

jekyll serve --incremental

В моем случае до 30 раз быстрее! К сожалению, работает только для сообщений в блогах и некоторых страниц.

Ответ 3

Я проверил новый сайт jekyll и ваш репозиторий Benchmark. То же самое время, около 5 секунд.

Проблема в другом месте. Я думаю, что ваша установка ruby ​​/gems имеет проблему. Переустановка.

На стороне активов (js, css) Jekyll хорош (sass, coffeescript), и вы можете использовать jekyll assets для минимизации и других оптимизация вещей. С этим решением проблемы с производительностью не являются проблемой.

То же самое для Grunt/ Gulp, но это означает, что вы также управляете установкой node.js.

Ответ 4

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

В моем случае переход от ruby ​​1.9.3-p448 к 2.1.3 имел огромное значение: для восстановления одного файла потребовалось несколько секунд в 1.9.3, почти мгновенно в 2.1.3.

Моя настройка была: Mac OS X 10.10, 50 сообщений и несколько крошечных плагинов, jekyll 2.4.0.

Ответ 5

У меня было очень медленное время сборки Jekyll при использовании драгоценного камня octopress-minify-html для минимизации моего html.

Чтобы ускорить время сборки в разработке, я добавил minify_html: false в мой _config.yml файл.

Это одно изменение принесло время сборки от более 60 секунд до ~ 1 секунды (!).