Публикация результатов верстки на gp-pages
Для студентов продвинутого курса по вёрстке в EpicSkills
Инструкция для студентов про-курса по вёрстке, но может быть применена без модификаций на любом проекте, в котором автоматизация сделана с gulp.
Github-pages — сервис, предоставляемый github.com. Среди прочего, он позволяет организовать бесплатный хостинг статичных файлов (с некоторыми ограничениями).
В вашем репозитории есть разделение на папку исходников (src/) и папку сборки (build/). В последней хранится результат вашей работы, который можно показать заказчику с gh-pages.
Как это работает
Вы запускаете gulp-задачу, которая берет содержимое папки build/ и помещает его в ветку gh-pages, после чего отправляет эту ветку в репозиторий текущего проекта на github.com и через пару минут содержимое ветки можно посмотреть на https://вашНик.github.io/названиеРепозитория/.
Как добавить задачу публикации на gh-pages
Все манипуляции делать с чистым git-статусом, чтобы добавление задачи публикации попало в отдельный коммит.
Шаг 1. Установить пакет для публикации: npm i gh-pages -D.
Шаг 2. В верхней части gulpfile.js добавить подключение пакета gh-pages и модуля path.
const ghPages = require('gh-pages');
const path = require('path');
Шаг 3. Добавить задачу:
function deploy(cb) {
ghPages.publish(path.join(process.cwd(), './build'), cb);
}
exports.deploy = deploy;
Шаг 4. На странице своего репозитория перейти в «Settings», найти блок «GitHub Pages», скопировать ссылку на gh-pages, вернуться на главную страницу вашего репозитория и добавить ссылку в блок описания репозитория.
Как использовать
npx gulp deploy
В вашем репозитории по команде npm start запускается gulp. Задача не указывается, так что выполнится задача по умолчанию (с именем default). Нужно указать имя задачи: npm start deploy.
После занятия, на котором мы добавляем удобные алиасы, у вас появляется алиас s, запускающий npm start. Если это уже сделано, запуск задачи делается совсем коротко: s deploy.
Между успешной отправкой содержимого ветки gh-pages в ваш репозиторий и реальным появлением её содержимого на GitHub Pages проходит несколько (редко более 1-2) минут.
При любых проблемах в течение курса обратитесь к вашему наставнику или лично ко мне.