Подключение библиотеки date-fns через CDN предполагает загрузку готовых сборок напрямую из сети доставки контента без установки через пакетные менеджеры. Такой подход используется в проектах, где требуется быстрое подключение функциональности работы с датами без этапа сборки.
CDN (Content Delivery Network) предоставляет доступ к статическим файлам библиотеки через HTTP(S), обеспечивая кэширование на стороне браузера и минимальную задержку загрузки за счёт географически распределённых серверов.
Для подключения библиотеки чаще всего применяются следующие CDN-провайдеры:
Оба сервиса работают с опубликованными версиями пакета date-fns и позволяют фиксировать конкретную версию для предотвращения неожиданных изменений поведения.
Подключение через jsDelivr выполняется с использованием глобальных сборок (UMD/ESM), публикуемых в npm-пакете.
<script src="https://cdn.jsdelivr.net/npm/date-fns@3.6.0/index.min.js"></script>
После загрузки библиотека становится доступной через глобальный объект:
const { format, addDays } = dateFns;
const result = format(new Date(), "yyyy-MM-dd");
В UMD-сборке весь функционал объединяется в единый объект, что упрощает использование в классических HTML-страницах без модульной системы.
jsDelivr позволяет импортировать отдельные модули:
<script src="https://cdn.jsdelivr.net/npm/date-fns@3.6.0/format/index.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/date-fns@3.6.0/addDays/index.min.js"></script>
Использование:
const result = dateFnsFormat(new Date(), "dd.MM.yyyy");
Такой способ снижает объём загружаемого кода за счёт подключения только необходимых функций.
unpkg предоставляет прямой доступ к структуре npm-пакета.
<script src="https://unpkg.com/date-fns@3.6.0/index.min.js"></script>
Использование аналогично:
const { format } = dateFns;
format(new Date(), "yyyy-MM-dd");
<script src="https://unpkg.com/date-fns@3.6.0/format/index.min.js"></script>
dateFnsFormat(new Date(), "HH:mm");
При подключении через CDN критично указывать конкретную версию:
https://cdn.jsdelivr.net/npm/date-fns@3.6.0/index.min.js
Отсутствие версии приводит к загрузке последнего релиза:
https://cdn.jsdelivr.net/npm/date-fns/index.min.js
Такой подход может привести к изменению поведения функций при обновлении библиотеки date-fns.
В CDN-публикации доступны несколько типов файлов:
index.min.js — минимизированная UMD-сборкаformat/,
parse/, addDays/)Типичная структура:
date-fns/
format/
index.js
index.min.js
addDays/
index.js
Некоторые CDN поддерживают ES-модули:
<script type="module">
import { format } from "https://cdn.jsdelivr.net/npm/date-fns@3.6.0/+esm";
console.log(format(new Date(), "yyyy-MM-dd"));
</script>
ESM-формат обеспечивает:
CDN-архитектура даёт следующие характеристики:
Для библиотеки date-fns это особенно важно, поскольку она часто используется в клиентских приложениях с большим количеством мелких функций работы с датами.
При подключении через CDN возможно использование контроля целостности:
<script
src="https://cdn.jsdelivr.net/npm/date-fns@3.6.0/index.min.js"
integrity="sha384-..."
crossorigin="anonymous"
></script>
SRI предотвращает выполнение изменённого файла, если содержимое на CDN было модифицировано.
Использование CDN-версий накладывает ряд ограничений:
Несмотря на это, для быстрых интеграций и прототипирования CDN остаётся одним из основных способов подключения date-fns.