Jamstack (JavaScript, API и разметка) все чаще становится предпочтительным стеком разработки в Интернете. Название на веб- сайте Jamstack предполагает, что Jamstack — это «современный способ создания
Производительность, безусловно, является одним из преимуществ Jamstack, наряду с лучшей безопасностью, масштабируемостью и удобством для разработчиков. Сайты, построенные на архитектуре этого типа, используют предварительно обработанные статические страницы, обслуживаемые через CDN, могут получать данные из нескольких источников и заменять традиционные серверы и их базы данных
Что делает возможным создание статических сайтов быстро и относительно безболезненно, так это генераторы статических сайтов (SSG).
Существует множество генераторов статических сайтов на различных языках программирования, таких как JavaScript, Ruby, Go и других. Вы найдете исчерпывающий нефильтрованный список на staticsitegenerators.net, но если вам нужно
В этой статье я собираюсь перечислить семь популярных генераторов статических сайтов и их основные функции, чтобы вы могли лучше понять, какой из них лучше всего подходит для вашего проекта.
Что такое генераторы статических сайтов?
Обычная CMS (система управления контентом), такая как WordPress, например, динамически создает
Чтобы узнать больше о различиях между традиционной CMS и генератором статических сайтов, а также о преимуществах использования SSG, ознакомьтесь со статьей Крейга Баклера «7 причин использовать генератор статических сайтов «.
Но как насчет всех хороших вещей, которые приходят с CMS, таких как создание и обновление контента не разработчиками, совместная работа над контентом в команде и так далее? Войдите в безголовую CMS.
Безголовая CMS — это та, у которой есть только серверная часть. Там нет внешнего интерфейса для отображения контента. Его единственная задача — управлять контентом, но он также предоставляет API, который другой внешний интерфейс может использовать для извлечения введенных в него данных.
Таким образом, редакционная группа, например, может продолжать работу в своем знакомом удобном интерфейсе администратора, а контент, который они создают или обновляют, является лишь одним из источников данных среди других, к которым генераторы статических сайтов могут получить доступ через открытый API. К популярным безголовым CMS относятся Strapi, Sanity и Contentful. Кроме того, у WordPress есть REST API, который позволяет разработчикам использовать его как безголовую CMS.
Таким образом, современный инструментарий Jamstack позволяет создать статически обслуживаемый
Теперь давайте рассмотрим некоторые параметры генератора статических сайтов.
1. Гэтсби
Гэтсби
Gatsby — полноценный фреймворк для создания статических
Вот некоторые из сильных сторон Гэтсби:
С Gatsby вы можете работать с новейшими
Богатая экосистема плагинов Gatsby позволяет вам использовать любые данные, которые вы предпочитаете, из одного или нескольких источников.
Простое развертывание и масштабируемость, что в основном связано с тем, что Gatsby создает статические страницы, не требующие сложной настройки.
Gatsby is a progressive web apps (PWA) generator:
Вы получаете готовое разделение кода и данных. Gatsby загружает только важные HTML, CSS, данные и JavaScript, поэтому ваш сайт загружается максимально быстро. После загрузки Gatsby предварительно извлекает ресурсы для других страниц, так что щелчок по сайту кажется невероятно быстрым. — сайт Гэтсби
Для вас доступно множество стартовых сайтов, которые вы можете свободно загружать и настраивать.
2. Некст.js
Next.js
Next — это универсальный фреймворк для создания серверных или статически экспортируемых приложений JavaScript. Он построен на основе React и создан Vercel.
Чтобы создать приложение Next, выполните в терминале следующую команду:
npx
cdв
npm run dev
Чтобы убедиться, что все работает должным образом, откройте http: //localhost:3000 в своем браузере.
У Next.js есть отличная документация, где вы можете узнать больше о создании и настройке приложений на основе Next.
Вот ряд лучших функций Next:
Next рендерится на сервере по умолчанию, что отлично подходит для производительности. Чтобы обсудить плюсы и минусы рендеринга на стороне сервера, ознакомьтесь с этой статьей Алекса Григоряна на Medium.
Настройка не требуется: автоматическое разделение кода, маршрутизация и горячая перезагрузка из коробки.
Оптимизация изображений, интернационализация и аналитика.
Отличные документы, учебные пособия, викторины и примеры, которые помогут вам перейти от новичка к продвинутому пользователю.
Встроенная поддержка CSS.
Множество примеров приложений для начала.
3. Хьюго
Hugo — генераторы статических сайтов
Hugo — очень популярный генератор статических сайтов с более чем 49 тысячами звезд на GitHub прямо сейчас. Он написан на Go и позиционирует себя как самый быстрый фреймворк для создания
Документы великолепны, а на
Вот некоторые из самых любимых функций Хьюго:
Разработан и оптимизирован для скорости: как правило, каждый фрагмент контента отображается примерно за одну миллисекунду.
Нет необходимости устанавливать дополнительные плагины для таких вещей, как нумерация страниц, перенаправление, несколько типов контента и многое другое.
Богатая система тем.
Шорткоды доступны в качестве альтернативы использованию Markdown.
С декабря 2020 года Hugo предлагает поддержку Dart Sass и новый фильтр для наложения изображения поверх другого — Hugo 0.80: последний выпуск 2020 года!
4. Nuxt.js
Nuxt.js
Nuxt.js — это платформа более высокого уровня, созданная с помощью Vue.js, которая позволяет создавать готовые
Рендеринг на стороне сервера для вашего
Генерация статического сайта. С Nuxt вы можете создавать статические
Одностраничные приложения (SPA). Nuxt предоставляет вам конфигурацию и платформу для создания вашего SPA на основе Vue.
Создание
Вот некоторые особенности Nuxt.js:
Отличная производительность: приложения на основе Nuxt изначально оптимизированы.
Модульность: Nuxt построен с использованием мощной модульной структуры. Есть более 50 модулей, которые вы можете выбрать, чтобы ускорить процесс разработки.
Относительно легкая кривая обучения. Nuxt основан на Vue, фреймворке, позволяющем быстро и безболезненно начать работу.
Интегрированное управление состоянием с помощью Vuex.
Автоматическое разделение кода.
Передовая транспиляция кода JavaScript.
Связывание и минификация JS и CSS.
Управляющий
элемент (
Препроцессор: Sass, Less, Stylus и др.
5. Джекил
Джекил
Простота Jekyll и низкая кривая обучения делают его популярным выбором с более чем 42 тысячами звезд на GitHub на момент написания. Он существует с 2008 года, так что это зрелое и хорошо поддерживаемое программное обеспечение.
Jekyll построен на Ruby. Вы пишете свой контент в Markdown, а механизм шаблонов — Liquid. Он идеально подходит для блогов и других текстовых
Замечательные функции, которые может предложить Jekyll, включают в себя:
простота
бесплатный хостинг на GitHub Pages
отличное сообщество, которое занимается обслуживанием и созданием тем, плагинов, руководств и других ресурсов.
6. Одиннадцать
Одиннадцатый JS
Eleventy, часто рассматриваемый как
Чтобы быстро приступить к работе с Eleventy, ознакомьтесь с «Начало работы с Eleventy «Крейга Баклера, «Учебное пособие по 11ty» Рэймонда Камдена: доведение вашего блога Jamstack до 11 и «Руководство по Eleventy для начинающих «Татьяны Мак или посетите страницы документации по началу работы на
Некоторые приятные особенности включают в себя:
простота и производительность
сообщество
гибкая система шаблонов
быстрое время сборки
7. ВьюПресс
VuePress
VuePress — генератор статических сайтов на базе Vue. Его тема по умолчанию оптимизирована для написания технических документов, поэтому она отлично работает для этого типа сайта прямо из коробки. Его текущая стабильная версия на момент написания статьи — 1.8.0, но если вам интересны критические изменения, которые находятся в разработке, ознакомьтесь с
Сайт VuePress работает как SPA, в котором используются возможности Vue, Vue Router и
Чтобы начать работу с VuePress, вам потребуется Node.js v. 10+ и дополнительно Yarn Classic.
Для быстрой настройки VuePress используйте генератор
NPM:
npx
Пряжа:
yarn create
После того, как вы ответили на несколько вопросов по настройке, вы должны увидеть новую файловую структуру
Перейдите к руководству VuePress для получения более подробной информации.
Вот несколько замечательных функций, которые может предложить VuePress:
Настройка вашего сайта на основе VuePress выполняется быстро, и вы можете писать свой контент с помощью Markdown.
VuePress построен на Vue, а это означает, что вы можете пользоваться
Быстрая загрузка: статические сайты VuePress состоят из предварительно обработанного статического HTML и запускаются как SPA после загрузки в браузере.
Многоязычная поддержка по умолчанию с i18n.
Nuxt.js или VuePress?
И Nuxt.js, и VuePress построены на основе Vue.js и позволяют создавать статические
Допустим, Nuxt.js может делать все, что делает VuePress. Однако, по сути, Nuxt лучше всего подходит для создания приложений. VuePress, с другой стороны, идеально подходит для создания
Короче говоря, если все, что вам нужно, это сайт документации или очень простой блог на Vue.js, подумайте о том, чтобы обратиться к VuePress, поскольку Nuxt будет излишним.
Как выбрать генератор статических сайтов
Со всеми доступными опциями легко почувствовать себя парализованным, когда дело доходит до выбора генератора статических сайтов, который отвечает всем требованиям. Есть некоторые соображения, которые могут помочь вам просеять то, что предлагается.
Требования вашего проекта должны пролить свет на функции, которые вам следует искать в SSG.
Если вашему проекту требуется множество динамических возможностей из коробки, то Хьюго и Гэтсби могут быть хорошим выбором. Что касается времени сборки и развертывания, все перечисленные выше SSG работают очень хорошо, хотя Hugo кажется фаворитом, особенно если на вашем
Ваш проект блог или персональный сайт? В этом случае Jekyll и Eleventy могут быть отличным выбором, а для простого
Еще одна вещь, которую вы, возможно, захотите рассмотреть, — это ваше знакомство с каждым из языков SSG. Если вы программируете на Go, то Hugo, скорее всего, будет вашим предпочтительным выбором. С другой стороны, если JavaScript — ваш любимый язык программирования, вы избалованы выбором: Eleventy построен на чистом JS, Next и Gatsby построены поверх React, а Nuxt и VuePress построены на Vue.
Что касается таких вещей, как отличная документация, сильное сообщество и поддержка, все генераторы статических сайтов, которые я перечислил, являются одними из самых популярных.