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 секунды (!).