Flatpickr устанавливается через Yarn как обычная npm-библиотека, поскольку распространяется в виде пакета с поддержкой CommonJS и ES-модулей. Базовая установка добавляет сам функционал календаря, но требует отдельного подключения стилей и, при необходимости, локалей и плагинов.
Основная команда добавления Flatpickr в проект:
yarn add flatpickr
После выполнения в package.json появится
зависимость:
{
"dependencies": {
"flatpickr": "^4.x.x"
}
}
Yarn автоматически скачивает пакет из npm-реестра и помещает его в
node_modules, а также фиксирует версию в
yarn.lock, обеспечивая воспроизводимость сборки.
После установки в node_modules/flatpickr доступны
основные директории:
dist/ — собранные файлы (UMD, ESM, minified
версии)src/ — исходный код библиотекиtypes/ — TypeScript-определения (в современных
версиях)l10n/ — локализацииКлючевой файл для подключения — dist/flatpickr.js, но в
большинстве сборок используется импорт как модуля.
import flatpickr from "flatpickr";
Инициализация календаря:
flatpickr("#dateInput", {});
const flatpickr = require("flatpickr");
Использование идентично:
flatpickr("#dateInput", {});
Flatpickr не работает корректно без CSS, поэтому стили подключаются отдельно:
import "flatpickr/dist/flatpickr.min.css";
При использовании сборщиков вроде Webpack, Vite или Parcel этот импорт автоматически включается в итоговый бандл.
Также доступны альтернативные темы:
import "flatpickr/dist/themes/dark.css";
import "flatpickr/dist/themes/material_blue.css";
В монорепозиториях Flatpickr устанавливается на уровне корневого workspace или конкретного пакета:
yarn workspace frontend add flatpickr
или
yarn add flatpickr -W
Особенность Yarn Workspaces заключается в том, что зависимость может
быть хоистнута в корневой node_modules, что уменьшает
дублирование библиотек между пакетами.
В Yarn 2+ (Berry) Flatpickr устанавливается аналогично:
yarn add flatpickr
Но вместо node_modules может использоваться PnP-модель.
В этом случае:
node_modules.pnp.cjsДля проектов с Flatpickr важно убедиться, что bundler поддерживает PnP (Vite, Webpack 5 — поддерживают).
Flatpickr включает типизацию, но в некоторых версиях может потребоваться дополнительная настройка:
yarn add -D @types/flatpickr
Использование в TypeScript:
import flatpickr from "flatpickr";
flatpickr("#dateInput", {
dateFormat: "Y-m-d",
});
Типы обеспечивают строгую проверку конфигурации и событий, включая:
onChangeonOpenonClosedisableenableЛокализации подключаются отдельно:
import { Russian } from "flatpickr/dist/l10n/ru.js";
flatpickr("#dateInput", {
locale: Russian
});
При использовании Yarn эти файлы уже доступны внутри пакета, отдельная установка не требуется.
Плагины также входят в пакет:
import rangePlugin from "flatpickr/dist/plugins/rangePlugin";
Подключение через конфигурацию:
flatpickr("#start", {
plugins: [rangePlugin({ input: "#end" })]
});
Flatpickr работает без дополнительной конфигурации:
import flatpickr from "flatpickr";
import "flatpickr/dist/flatpickr.min.css";
При необходимости обработки CSS:
module.exports = {
module: {
rules: [
{
test: /\.css$/,
use: ["style-loader", "css-loader"]
}
]
}
};
Yarn позволяет фиксировать версию Flatpickr для стабильности интерфейса календаря:
yarn add flatpickr@4.6.13
Либо диапазон:
"flatpickr": "~4.6.0"
Это важно, поскольку изменения в API или стилях могут влиять на внешний вид календаря в интерфейсе.
yarn upgrade flatpickr
или до конкретной версии:
yarn upgrade flatpickr@latest
Yarn активно использует кэш, поэтому повторная установка Flatpickr выполняется быстрее:
Очистка кэша при необходимости:
yarn cache clean flatpickr
flatpickr.min.cssКорректная настройка Yarn и сборщика устраняет большинство подобных проблем и обеспечивает стабильную работу календаря в интерфейсе.