Nanoc долгое время компиляции

Я использую Nanoc для создания документации для моего проекта. У меня есть несколько файлов (~50) и макеты уже созданы, но в настоящее время я работаю над одним файлом. Странно то, что он компилирует этот файл менее чем за секунду, а затем работает над чем-то, что занимает более 20 секунд!

Loading site data…
Compiling site…
      update  [0.71s]  output/docs/js/getData/index.html

Site compiled in 22.96s.

Когда я прекращаю процесс после:

      update  [0.71s]  output/docs/js/getData/index.html

линия с CTRL+C и nanoc view мой файл скомпилирован хорошо. У вас есть идеи, как ускорить процесс? Что нанок делает за 20 секунд?

1 ответ

Решение

По умолчанию nanoc показывает только те файлы, которые созданы, обновлены или удалены. Файлы, которые перекомпилированы, но оказались идентичными, не будут показаны. Если вы пройдете --verbose в nanoc compile, вы увидите, какие файлы скомпилированы, но идентичны.

Таким образом, те 20 секунд, когда Nanoc, кажется, ничего не делает, вероятно, 20 секунд, когда Nanoc занят перекомпиляцией, но обнаруживает, что скомпилированные файлы одинаковы, поэтому они не отображаются.

Элементы будут перекомпилированы, если только Nanoc не будет уверен, что они останутся идентичными. Иногда nanoc не может с уверенностью знать, что файл будет идентичен при перекомпиляции, поэтому в этом случае элемент все равно будет перекомпилирован.

Хотя 23 секунды на компиляцию сайта из 50 страниц кажутся медленными. Это помогает выбирать быстрые фильтры (например, RDiscount для Markdown, pygments.rb для окраски синтаксиса). Если можешь, беги nanoc через профилировщик Ruby (например, perftools.rb), чтобы узнать, откуда происходит медлительность.

Другие вопросы по тегам