Headroom.js распространяется как npm-пакет, поэтому
установка через менеджер пакетов yarn является стандартным
и предпочтительным способом интеграции в современный
JavaScript-проект.
Установка выполняется одной командой:
yarn add headroom.js
После выполнения:
node_modulespackage.json автоматически появится запись в разделе
dependenciesПример фрагмента package.json:
{
"dependencies": {
"headroom.js": "^0.12.0"
}
}
Для контроля установленной версии используется команда:
yarn list --pattern headroom.js
Это позволяет убедиться, что используется ожидаемая версия, особенно в проектах с большим количеством зависимостей.
После установки библиотека становится доступной для импорта.
ES Modules (современный синтаксис):
import Headroom from "headroom.js";
CommonJS (например, в Node.js или старых сборках):
const Headroom = require("headroom.js");
При использовании инструментов сборки (например, Webpack, Vite, Rollup):
Headroom.js не включает CSS, но предполагает использование классов, которые добавляются к элементу. После установки через yarn необходимо самостоятельно определить стили.
Минимальный пример:
.headroom {
transition: transform 0.3s ease;
}
.headroom--pinned {
transform: translateY(0%);
}
.headroom--unpinned {
transform: translateY(-100%);
}
Минимальная инициализация для проверки:
import Headroom from "headroom.js";
const header = document.querySelector("header");
const headroom = new Headroom(header);
headroom.init();
Если при прокрутке страницы элемент начинает скрываться и появляться — установка выполнена корректно.
Для фиксации определённой версии:
yarn add headroom.js@0.12.0
Это важно для:
В редких случаях (например, при использовании только в демонстрационных или тестовых сборках) библиотеку можно установить как dev-зависимость:
yarn add headroom.js --dev
Однако для клиентских приложений библиотека обычно относится к
основным зависимостям (dependencies).
Yarn кэширует пакеты, поэтому после первой установки Headroom.js может устанавливаться без доступа к сети:
yarn install --offline
Это ускоряет CI/CD процессы и локальную разработку.
При необходимости удаления:
yarn remove headroom.js
После выполнения:
node_modulespackage.jsonHeadroom.js придерживается семантического версионирования (SemVer):
Использование диапазона версий (^) означает
автоматическое получение минорных обновлений:
"headroom.js": "^0.12.0"
Для полной фиксации версии используется точное значение:
"headroom.js": "0.12.0"
При использовании Yarn Workspaces:
Пример:
yarn workspace frontend add headroom.js
1. Модуль не найден
Причина:
node_modulesРешение:
yarn install
или полная переустановка:
rm -rf node_modules yarn.lock
yarn install
2. Конфликт версий
Проверка зависимостей:
yarn why headroom.js
Позволяет определить, какие пакеты используют библиотеку.
3. Проблемы с SSR
Headroom.js использует window, поэтому при серверном
рендеринге требуется:
if (typeof window !== "undefined") {
const Headroom = require("headroom.js");
}
или динамический импорт.
Установка через yarn обеспечивает:
Это делает данный способ основным для использования Headroom.js в производственных проектах.