Библиотека Leaflet подключается как обычная npm-зависимость и полностью совместима с современными сборщиками JavaScript-проектов. Yarn используется как менеджер пакетов, обеспечивающий предсказуемую установку зависимостей и быстрый процесс работы с node_modules.
Перед установкой требуется наличие окружения Node.js, поскольку Yarn работает поверх npm-регистра и использует его инфраструктуру.
Создание нового проекта выполняется через стандартную инициализацию package.json:
yarn init -y
После выполнения команды формируется базовый файл конфигурации проекта, содержащий минимальные параметры: имя пакета, версию и точку входа.
При необходимости структура проекта может быть расширена под конкретную архитектуру фронтенд-приложения:
/project
/src
/dist
package.json
Основной пакет библиотеки устанавливается из npm-реестра:
yarn add leaflet
После выполнения команды Yarn:
В package.json появляется зависимость:
{
"dependencies": {
"leaflet": "^1.9.4"
}
}
Версия может отличаться в зависимости от момента установки, но принципиально важно фиксировать диапазон совместимости, а не жесткую привязку, если проект предполагает обновления.
При использовании TypeScript требуется подключение типизации:
yarn add -D @types/leaflet
Пакет устанавливается как dev-dependency, поскольку используется только на этапе компиляции.
В результате появляется поддержка:
После установки библиотеку можно импортировать в модульной системе ES:
import L from 'leaflet';
Для проектов без сборщика (например, при использовании Vite, Webpack или аналогов) Leaflet корректно работает в ESM-режиме.
Также возможен импорт CSS, необходимого для корректного отображения карты:
import 'leaflet/dist/leaflet.css';
CSS содержит:
Отсутствие этого файла приводит к визуально «сломанной» карте, даже если логика работает корректно.
При интеграции через Vite установка через Yarn автоматически учитывается системой модулей:
yarn add leaflet
Далее импорт выполняется напрямую:
import L from 'leaflet';
import 'leaflet/dist/leaflet.css';
const map = L.map('map').setView([51.505, -0.09], 13);
В Webpack дополнительно может потребоваться настройка обработки CSS:
module.exports = {
module: {
rules: [
{
test: /\.css$/,
use: ['style-loader', 'css-loader']
}
]
}
};
Корректная установка подтверждается фактом наличия пакета в node_modules и отсутствием ошибок при импорте:
console.log(L.version);
Вывод версии библиотеки подтверждает, что модуль успешно подключен и доступен в runtime.
Структура зависимостей Leaflet минимальна, поэтому установка проходит без дополнительных peer-dependencies.
Однако в проектах с жесткой политикой сборки могут встречаться следующие особенности:
В Yarn Workspaces Leaflet устанавливается на уровне корневого пакета:
yarn workspace frontend add leaflet
или глобально для всех пакетов:
yarn add leaflet -W
Это позволяет избежать дублирования зависимостей и гарантирует единый источник версии библиотеки во всех модулях.
Leaflet использует дополнительные изображения для маркеров и теней. При сборке через Yarn и современные bundler-ы может потребоваться корректная настройка путей:
import markerIcon from 'leaflet/dist/images/marker-icon.png';
import markerShadow from 'leaflet/dist/images/marker-shadow.png';
В некоторых конфигурациях Webpack требуется явное указание loader’ов для изображений, чтобы избежать ошибок 404 при рендеринге маркеров.
Контроль установленной версии выполняется через Yarn:
yarn list --pattern leaflet
Команда показывает текущую установленную версию и путь до пакета в дереве зависимостей, что важно при диагностике конфликтов версий в сложных фронтенд-проектах.