Установка через npm и yarn

Установка Day.js через npm выполняется стандартной командой менеджера пакетов Node.js. Библиотека распространяется как готовый модуль, не требующий дополнительной сборки или компиляции.

npm install dayjs

После установки пакет появляется в node_modules, а также фиксируется в package.json в разделе зависимостей:

{
  "dependencies": {
    "dayjs": "^1.11.10"
  }
}

Day.js не требует глобальной установки. Использование осуществляется только как локальной зависимости проекта.

Импорт библиотеки в коде зависит от системы модулей.

Для CommonJS:

const dayjs = require('dayjs');

console.log(dayjs().format());

Для ES Modules:

import dayjs from 'dayjs';

console.log(dayjs().format());

В современных сборщиках (Vite, Webpack, Rollup, Next.js) предпочтительным считается ESM-вариант, так как он лучше оптимизируется для tree-shaking и статического анализа.


Установка через yarn

При использовании Yarn установка выполняется аналогичной командой:

yarn add dayjs

После выполнения зависимости фиксируются в package.json:

{
  "dependencies": {
    "dayjs": "^1.11.10"
  }
}

Yarn создаёт файл блокировки yarn.lock, который обеспечивает стабильность версий зависимостей между окружениями.

Использование Day.js после установки полностью идентично npm-варианту:

import dayjs from 'dayjs';

const now = dayjs();
console.log(now.format('YYYY-MM-DD HH:mm:ss'));

Сравнение npm и yarn при установке Day.js

Обе системы пакетного менеджмента решают одну задачу — установку зависимостей, однако различаются механизмами кеширования и разрешения пакетов.

npm

  • стандартный пакетный менеджер Node.js
  • использует package-lock.json
  • встроен в Node.js
  • высокая совместимость с экосистемой

yarn

  • альтернативный менеджер пакетов
  • использует yarn.lock
  • более агрессивное кеширование
  • предсказуемая установка зависимостей

Для Day.js различия не влияют на поведение библиотеки, так как она не имеет нативных бинарных зависимостей и представляет собой чистый JavaScript-модуль.


Проверка установки

После установки можно проверить корректность подключения через простой вызов:

import dayjs from 'dayjs';

const date = dayjs('2024-01-01');
console.log(date.format());

Если модуль импортируется без ошибок, значит установка прошла успешно.


Структура подключаемого пакета

Пакет Day.js содержит:

  • основной модуль ядра
  • плагины (опционально подключаемые расширения)
  • типизации TypeScript

Пример расположения после установки:

node_modules/dayjs/
  ├── index.js
  ├── dayjs.min.js
  ├── plugin/
  ├── locale/
  └── types/

Основной файл экспортирует функцию, которая возвращает объект даты-обёртки.


Установка с TypeScript

Day.js включает встроенные типы, поэтому дополнительная установка @types/dayjs не требуется.

Пример использования в TypeScript:

import dayjs from 'dayjs';

const timestamp: string = dayjs().toISOString();
console.log(timestamp);

Типизация позволяет использовать автодополнение и проверку корректности методов без дополнительных настроек.


Особенности установки в различных окружениях

Node.js проект

В серверных приложениях Day.js устанавливается как обычная зависимость:

npm install dayjs

Используется для обработки дат в API, логике бизнес-правил, планировщиках задач.


Frontend (Vite / Webpack / Rollup)

В клиентских приложениях установка аналогична:

npm install dayjs

Далее библиотека импортируется в модули:

import dayjs from 'dayjs';

document.body.textContent = dayjs().format();

Сборщики автоматически включают только используемые части библиотеки.


Next.js

В проектах Next.js Day.js устанавливается как обычная зависимость, без дополнительных конфигураций:

npm install dayjs

Важно учитывать, что при серверном рендеринге дата может вычисляться на сервере, поэтому форматирование следует выполнять с учётом временной зоны окружения.


Частые проблемы при установке

Конфликт версий Node.js

Day.js поддерживает современные версии Node.js. При использовании устаревших версий могут возникать ошибки импорта ES Modules.

Решение — использование актуальной версии Node.js LTS.


Ошибка импорта

Неправильный импорт часто связан с смешением CommonJS и ESM:

// некорректно в ESM-проекте
const dayjs = require('dayjs');

или наоборот:

// некорректно в CommonJS без настройки
import dayjs from 'dayjs';

Выбор синтаксиса должен соответствовать конфигурации проекта.


Дублирование зависимостей

В монорепозиториях может возникать ситуация, когда Day.js устанавливается в нескольких пакетах. Это увеличивает размер node_modules, но не влияет на выполнение кода, так как библиотека не содержит тяжёлых runtime-зависимостей.


Использование в связке с плагинами после установки

После установки базового пакета часто подключаются дополнительные возможности через плагины:

import dayjs from 'dayjs';
import utc from 'dayjs/plugin/utc';

dayjs.extend(utc);

console.log(dayjs().utc().format());

Плагины не устанавливаются отдельно через npm — они уже входят в состав пакета и подключаются вручную.


Итоговая модель подключения

Типичный процесс использования Day.js после установки сводится к трём шагам:

  1. Установка пакета через npm или yarn
  2. Импорт модуля в код
  3. Использование функции dayjs() как базового конструктора даты
import dayjs from 'dayjs';

const formatted = dayjs().format('YYYY-MM-DD');

Эта простота делает библиотеку предсказуемой в установке и интеграции в любые JavaScript-проекты.