Генератор статических веб-сайтов, который позволяет вам использовать уже знакомые вам HTTP-серверы и фреймворки. Просто скажите Staticgen, как запустить ваш сервер, затем наблюдайте, как он сканирует ваш сайт и создает статическую версию со всеми необходимыми страницами и ресурсами.
Если вы не знакомы, вы можете использовать команду wget, созданную десятилетия назад, для вывода статического веб-сайта из динамического. Этот проект специально создан для той же идеи, позволяя вашей команде использовать любые HTTP-серверы и платформы, которые вы используете. уже знаком, на любом языке.
Я еще не проводил никаких научных тестов или сравнений, но вот некоторые результаты моего 8-ядерного MBP 2014 года выпуска:
Через gobinaries.com:
$ curl -sf https://gobinaries.com/tj/staticgen/cmd/staticgen | sh Конфигурация хранится в файле ./static.json в корневом каталоге вашего проекта. Доступны следующие варианты:
"http://127.0.0.1:3000" ."build" .[] .30 . Сначала создайте файл конфигурации ./static.json , например, вот конфигурация для сервера Go, единственным обязательным свойством является command :
{
"command" : " go run main.go " ,
"concurrency" : 50 ,
"dir" : " dist "
} Ниже приведен пример сервера Node.js. Обратите внимание, что NODE_ENV назначен для производства, поэтому такие оптимизации, как кэш шаблонов Express, используются для повышения производительности обслуживания.
{
"command" : " NODE_ENV=production node server.js "
} Запустите команду staticgen , чтобы запустить процесс предварительного рендеринга:
$ staticgen
Staticgen выполняет предоставленную вами command и ждет, пока сервер станет доступным по настроенному url . Страницы и ресурсы копируются в настроенный dir , а затем ваш сервер отключается.
По умолчанию время ожидания процесса генерации составляет 15 минут. В зависимости от вашей ситуации вы можете увеличить или уменьшить его с помощью флага -t, --timeout , вот несколько примеров:
$ staticgen -t 30s
$ staticgen -t 15m
$ staticgen -t 1h
При запуске command Staticgen устанавливает для переменной среды STATICGEN значение 1 , что позволяет при необходимости изменить поведение.
Чтобы просмотреть предварительно отрисованный сайт, выполните следующую команду, чтобы запустить статический файловый сервер и открыть браузер:
$ staticgen serve
Полные примеры см. в каталоге примеров.
Staticgen не выполняет предварительную отрисовку с использованием headless-браузера, это делает ее быстрее, однако это означает, что вы не можете полагаться на клиентский JavaScript для управления страницей.
Этот проект спонсируется CTO.ai, что позволяет командам разработчиков легко создавать и совместно использовать средства автоматизации рабочих процессов, не выходя из командной строки.
И мои спонсоры GitHub: