Shepherd.js можно собрать напрямую из исходного кода, что позволяет использовать последнюю версию библиотеки и подключать её с минимальными зависимостями. Исходники доступны в репозитории на GitHub. Для работы потребуется Node.js (рекомендуется версия 14 и выше) и пакетный менеджер npm или yarn.
Для начала необходимо получить исходники:
git clone https://github.com/shipshapecode/shepherd.git
cd shepherd
После этого репозиторий готов для локальной сборки и установки зависимостей.
Shepherd.js использует современные инструменты сборки, такие как Rollup и PostCSS. Установка всех зависимостей производится командой:
npm install
или, если используется yarn:
yarn install
Это установит все пакеты, указанные в package.json,
включая зависимости для сборки, тестирования и линтинга.
Shepherd.js использует Rollup для упаковки модулей. После установки зависимостей можно собрать библиотеку в продакшен-формате:
npm run build
Эта команда создаст директорию dist, где будут
находиться:
shepherd.js — полный модуль с ES и UMD поддержкой,shepherd.css — стили для подсказок,shepherd.min.js — минифицированная версия скрипта.Файлы в dist можно подключать напрямую в проект через
<script> или импортировать как модули.
В rollup.config.js задаются конфигурации сборки:
src/js/index.js),Можно добавлять свои плагины, например, для поддержки TypeScript или добавления минификации CSS.
Для удобства разработки доступна команда для запуска локального сервера с отслеживанием изменений:
npm run dev
Она запускает сборку в режиме watch, автоматически
пересобирая скрипт при изменении исходного кода. Пример HTML-файла для
тестирования подсказок может быть расположен в папке
examples:
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="../dist/shepherd.css">
</head>
<body>
<button id="start-tour">Начать тур</button>
<script src="../dist/shepherd.js"></script>
<script>
const tour = new Shepherd.Tour({
defaultStepOptions: {
cancelIcon: {
enabled: true
},
scrollTo: { beh * avior: 'smooth', block: 'center' }
}
});
tour.addStep({
title: 'Пример шага',
text: 'Это первый шаг вашего тура.',
attachTo: { element: '#start-tour', on: 'bottom' }
});
document.getElementById('start-tour').addEventListener('click', () => {
tour.start();
});
</script>
</body>
</html>
Shepherd.js поддерживает подключение отдельных модулей. Например, можно собрать версию без CSS или без некоторых плагинов:
src/js/index.js.npm run build.Такой подход уменьшает размер итогового скрипта и ускоряет загрузку.
После сборки рекомендуется проверять работу библиотеки с помощью встроенных тестов:
npm run test
Shepherd.js использует Jest и Puppeteer для юнит-тестов и тестирования взаимодействий с DOM. Тесты помогают убедиться, что кастомные сборки не ломают ключевые функции, такие как навигация между шагами, отображение подсказок и обработка событий.
Для локального использования достаточно подключить файлы из
dist. Для публикации на npm или внутри внутреннего
проекта:
npm publish --access public
Перед этим важно обновить version в
package.json и убедиться, что все файлы корректно включены
в пакет через поле files.
Сборка из исходников обеспечивает полный контроль над библиотекой: можно подключать новые плагины, изменять стили, оптимизировать размер и проверять работу на локальной машине до интеграции в проект.