
Размещение React приложения на GitHub Pages позволяет быстро сделать проект доступным в интернете без настройки собственного сервера. GitHub Pages поддерживает статические сайты, поэтому необходимо собрать проект в готовую к деплою версию с помощью команды npm run build или yarn build.
Перед публикацией важно определить точный путь хоста приложения. Для проектов, размещённых в репозитории пользователя, адрес будет https://username.github.io/repository-name/. В случае организации путь формируется аналогично, но с названием организации вместо имени пользователя. Этот URL потребуется указать в поле homepage в файле package.json.
Для автоматизации деплоя рекомендуется использовать пакет gh-pages, который создаёт отдельную ветку gh-pages и загружает в неё содержимое сборки. После установки пакета необходимо добавить скрипты predeploy и deploy в package.json, чтобы процесс публикации выполнялся одной командой.
GitHub Pages обновляет содержимое ветки автоматически после пуша. После первого деплоя важно проверить доступность приложения по указанному URL и убедиться, что корректно загружаются все маршруты React. В случае ошибок необходимо проверить правильность basename в BrowserRouter и настройки репозитория.
Подготовка проекта React для публикации

Первый шаг – убедиться, что проект собран с последней версией зависимостей. Выполните npm install или yarn install, чтобы установить все пакеты, указанные в package.json. Проверьте, что React, ReactDOM и react-scripts обновлены до стабильных версий, совместимых с вашим проектом.
Создайте файл homepage в package.json, указав точный адрес будущей публикации, например «https://username.github.io/repository-name». Это обеспечит корректную генерацию путей к статическим файлам после сборки и предотвратит ошибки загрузки ресурсов.
Удалите ненужные файлы и папки, не участвующие в сборке, чтобы уменьшить размер проекта. Особое внимание уделите src, public и файлу index.html. Проверьте наличие фавикона, метатегов и корректных ссылок на CSS и JS файлы.
Для проектов с роутером React используйте свойство basename в BrowserRouter, соответствующее имени репозитория. Это предотвратит ошибки при навигации по страницам после публикации. После подготовки выполните npm run build или yarn build, чтобы создать оптимизированную версию для деплоя.
Установка и настройка пакета gh-pages
Для автоматической публикации React приложения используйте пакет gh-pages. Установите его командой npm install —save-dev gh-pages или yarn add —dev gh-pages. Пакет создаёт отдельную ветку gh-pages и размещает в ней содержимое сборки.
После установки откройте package.json и добавьте два скрипта: «predeploy»: «npm run build» и «deploy»: «gh-pages -d build». Скрипт predeploy автоматически создаёт сборку проекта перед публикацией, а deploy загружает её на ветку gh-pages.
Убедитесь, что указан правильный путь в поле homepage, например «https://username.github.io/repository-name». Это необходимо для корректной генерации ссылок на файлы CSS и JS. После настройки можно запускать npm run deploy или yarn deploy, чтобы загрузить приложение на GitHub Pages.
Добавление скриптов деплоя в package.json

Для автоматизации публикации React приложения на GitHub Pages необходимо добавить в package.json специальные скрипты. Они позволяют одной командой создавать сборку и загружать её в ветку gh-pages.
Структура скриптов в разделе «scripts» может выглядеть следующим образом:
| Скрипт | Назначение |
|---|---|
| predeploy | Создаёт оптимизированную сборку проекта перед публикацией: npm run build или yarn build |
| deploy | Загружает содержимое папки build на ветку gh-pages с помощью пакета gh-pages |
После добавления скриптов выполняйте команду npm run deploy или yarn deploy для автоматического создания сборки и публикации приложения на GitHub Pages. Убедитесь, что поле homepage содержит точный URL проекта, чтобы пути к ресурсам формировались корректно.
Создание и настройка ветки для GitHub Pages

Для размещения приложения на GitHub Pages необходимо создать отдельную ветку gh-pages. В большинстве случаев пакет gh-pages создаёт её автоматически при первом деплое, но при ручной настройке выполните команду git checkout -b gh-pages, а затем git push origin gh-pages.
Убедитесь, что в настройках репозитория на GitHub в разделе Pages выбрана ветка gh-pages и папка /root в качестве источника. Это гарантирует, что GitHub будет использовать содержимое ветки для генерации статического сайта.
Если в проекте предусмотрены маршруты React, проверьте корректность свойства basename в BrowserRouter. Оно должно соответствовать названию репозитория, например /repository-name/, чтобы ссылки на страницы и ресурсы работали после публикации.
Запуск деплоя через npm или yarn
После настройки скриптов в package.json можно выполнить деплой React приложения на GitHub Pages. Процесс включает несколько шагов, которые обеспечивают корректную сборку и публикацию.
- Откройте терминал в корневой папке проекта.
- Для npm выполните команду npm run deploy, для yarn – yarn deploy.
- Скрипт predeploy создаст оптимизированную сборку в папке build.
- Скрипт deploy загрузит содержимое папки build в ветку gh-pages репозитория на GitHub.
- После завершения процесса в терминале появится ссылка на опубликованное приложение.
Если приложение использует маршруты React, убедитесь, что свойство basename в BrowserRouter соответствует URL репозитория. Это предотвратит ошибки 404 при переходе между страницами после деплоя.
- Проверяйте лог терминала на наличие ошибок загрузки файлов.
- При обновлении проекта повторно выполняйте npm run deploy или yarn deploy для публикации изменений.
Проверка работы приложения на GitHub Pages

После деплоя откройте URL проекта в браузере, указанный в поле homepage в package.json. Проверьте, что страница загружается без ошибок и все статические ресурсы доступны.
Особое внимание уделите работе маршрутов React. Если используется BrowserRouter, убедитесь, что basename совпадает с названием репозитория. Проверьте переходы между страницами и корректность загрузки компонентов.
Проверяйте консоль браузера на наличие ошибок 404 или проблем с загрузкой CSS и JS файлов. Если такие ошибки появляются, перепроверьте настройки homepage и корректность путей к ресурсам.
Для мобильной и десктопной версии убедитесь, что стили отображаются правильно. Тестируйте работу интерактивных элементов и кнопок, чтобы убедиться, что сборка и публикация не нарушили функциональность приложения.
Устранение распространённых ошибок при публикации
Ошибка 404 при переходе между страницами чаще всего возникает из-за неправильного значения basename в BrowserRouter. Оно должно точно соответствовать имени репозитория, например /repository-name/.
Если приложение не отображает стили или скрипты, проверьте правильность поля homepage в package.json. Оно должно содержать полный URL проекта, чтобы пути к ресурсам генерировались корректно.
При проблемах с веткой gh-pages убедитесь, что она существует и актуальна. При необходимости удалите ветку и создайте заново с помощью команды gh-pages -d build, чтобы перезаписать содержимое.
Если после деплоя не обновляются изменения, выполните git fetch —all и git reset —hard origin/main, затем повторно запустите npm run deploy или yarn deploy. Это очистит локальные и удалённые конфликты и гарантирует актуальность ветки.
Для проверки корректности публикации используйте режим инкогнито браузера или другой браузер, чтобы исключить влияние кэша на загрузку ресурсов.
Вопрос-ответ:
Как подготовить React проект перед публикацией на GitHub Pages?
Перед публикацией убедитесь, что все зависимости установлены через npm install или yarn install. В package.json добавьте поле homepage с точным URL проекта, например https://username.github.io/repository-name. Проверьте, что папка src содержит только необходимые файлы, а маршруты в BrowserRouter имеют правильный basename.
Для чего нужен пакет gh-pages и как его настроить?
Пакет gh-pages создаёт ветку gh-pages и загружает в неё собранное приложение. Установите пакет командой npm install —save-dev gh-pages или yarn add —dev gh-pages. В package.json добавьте скрипты predeploy для сборки и deploy для загрузки сборки в ветку, чтобы публикация выполнялась одной командой.
Как проверить корректность работы приложения после деплоя?
Откройте URL проекта, указанный в homepage, и проверьте загрузку страниц. Убедитесь, что все маршруты работают, стили отображаются правильно, а консоль браузера не содержит ошибок 404. Для маршрутов React проверьте значение basename в BrowserRouter.
Почему при публикации появляются ошибки 404 на внутренних страницах?
Ошибка 404 возникает, если basename в BrowserRouter не совпадает с названием репозитория или если поле homepage указано неправильно. Исправьте basename, например на /repository-name/, и убедитесь, что URL в homepage соответствует адресу репозитория на GitHub Pages.
Как обновлять приложение на GitHub Pages после внесения изменений?
После изменений в проекте выполните npm run build или yarn build для создания новой сборки. Затем запустите npm run deploy или yarn deploy для загрузки обновлённой версии в ветку gh-pages. Если изменения не отображаются, очистите кэш браузера или используйте режим инкогнито.
