Для установки библиотеки требуется установленный пакетный менеджер npm, входящий в состав Node.js. Проверка доступности выполняется командами:
node -v
npm -v
При отсутствии Node.js необходимо выполнить установку с официального сайта или через менеджеры пакетов системы.
Перед установкой зависимостей создаётся файл
package.json, содержащий метаданные проекта и список
зависимостей. В новом каталоге проекта выполняется:
npm init -y
Флаг -y автоматически заполняет файл значениями по
умолчанию.
Структура проекта после инициализации:
project/
├── package.json
Библиотека устанавливается из npm-реестра:
npm install headroom.js
После установки в package.json добавляется запись:
"dependencies": {
"headroom.js": "^0.12.0"
}
Также создаётся директория node_modules, содержащая
исходный код библиотеки и её зависимости.
Убедиться в корректной установке можно несколькими способами:
node_modules:node_modules/headroom.js/
npm list headroom.js
Ожидаемый вывод:
project@1.0.0
└── headroom.js@0.12.0
В средах с поддержкой ES Modules (например, при использовании сборщиков):
import Headroom from "headroom.js";
Для Node.js или старых конфигураций:
const Headroom = require("headroom.js");
После установки библиотека может использоваться напрямую в коде:
const header = document.querySelector("header");
const headroom = new Headroom(header);
headroom.init();
Важно, чтобы скрипт выполнялся после загрузки DOM:
document.addEventListener("DOMContentLoaded", () => {
const header = document.querySelector("header");
const headroom = new Headroom(header);
headroom.init();
});
После установки дополнительных настроек не требуется. Пример базового импорта:
import Headroom from "headroom.js";
const header = document.querySelector("header");
const headroom = new Headroom(header);
headroom.init();
Vite автоматически обрабатывает зависимости из
node_modules:
import Headroom from "headroom.js";
Запуск:
npm run dev
При необходимости подключается плагин для работы с node-модулями:
npm install @rollup/plugin-node-resolve
Конфигурация:
import resolve from "@rollup/plugin-node-resolve";
export default {
plugins: [resolve()]
};
Если библиотека используется исключительно на этапе разработки (редкий случай), установка выполняется с флагом:
npm install headroom.js --save-dev
В package.json:
"devDependencies": {
"headroom.js": "^0.12.0"
}
Удаление выполняется командой:
npm uninstall headroom.js
Запись автоматически удаляется из package.json.
Установка конкретной версии:
npm install headroom.js@0.11.0
Использование точной версии без диапазонов:
npm install headroom.js@0.12.0 --save-exact
В package.json:
"dependencies": {
"headroom.js": "0.12.0"
}
После установки создаётся файл package-lock.json,
фиксирующий точные версии зависимостей. Это гарантирует одинаковое
окружение на разных машинах.
Удалять его без необходимости не рекомендуется.
Очистка кэша npm:
npm cache clean --force
Полная переустановка зависимостей:
rm -rf node_modules package-lock.json
npm install
При необходимости можно отказаться от npm и подключить библиотеку через CDN:
<script src="https://unpkg.com/headroom.js"></script>
Однако при использовании npm достигаются преимущества:
Ошибка: module not found
Причины:
node_modulesРешение:
npm install
Несовместимость версий
Решение:
npm install -g npm
Конфликты зависимостей
Решение:
npm install --legacy-peer-deps
Структура:
project/
├── index.html
├── main.js
├── package.json
main.js:
import Headroom from "headroom.js";
document.addEventListener("DOMContentLoaded", () => {
const header = document.querySelector("header");
const headroom = new Headroom(header);
headroom.init();
});
index.html:
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<title>Headroom</title>
</head>
<body>
<header>Header</header>
<script type="module" src="./main.js"></script>
</body>
</html>
После установки и запуска сборщика библиотека готова к использованию в проекте.