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

yarn — менеджер пакетов для JavaScript, предназначенный для установки зависимостей, управления версиями библиотек и ускорения работы с проектами. Библиотека timeago.js распространяется через npm-репозиторий и полностью поддерживает установку через Yarn.

Основные преимущества использования Yarn при подключении timeago.js:

  • высокая скорость установки зависимостей;
  • кэширование пакетов;
  • предсказуемая структура зависимостей;
  • наличие lock-файла (yarn.lock);
  • удобная работа в больших проектах.

Подготовка окружения

Перед установкой timeago.js необходимо убедиться в наличии:

  • установленного Node.js;
  • пакетного менеджера yarn.

Проверка версий выполняется командами:

node -v
yarn -v

Если Yarn отсутствует, установка производится через npm:

npm install -g yarn

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

yarn

Создание проекта

Для нового проекта сначала создаётся директория:

mkdir timeago-project

Переход в папку проекта:

cd timeago-project

Инициализация package.json:

yarn init -y

После выполнения команды в каталоге появится файл:

package.json

Он содержит информацию о проекте и список зависимостей.


Установка библиотеки timeago.js

Установка выполняется одной командой:

yarn add timeago.js

После завершения Yarn:

  • скачивает пакет;
  • добавляет его в директорию node_modules;
  • записывает зависимость в package.json;
  • создаёт или обновляет yarn.lock.

Пример автоматически добавленной зависимости:

{
  "dependencies": {
    "timeago.js": "^4.0.2"
  }
}

Структура проекта после установки

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

project/
│
├── node_modules/
├── package.json
├── yarn.lock
└── src/

Назначение файлов

Файл Описание
node_modules Установленные зависимости
package.json Конфигурация проекта
yarn.lock Зафиксированные версии пакетов

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

Проверить наличие библиотеки можно несколькими способами.

Через package.json

"dependencies": {
  "timeago.js": "^4.0.2"
}

Через Yarn

yarn list --pattern timeago

Пример результата:

└─ timeago.js@4.0.2

Подключение библиотеки

CommonJS

Для проектов на Node.js:

const timeago = require('timeago.js');

ES Modules

Для современных сборщиков:

import * as timeago from 'timeago.js';

Также возможен импорт отдельных функций:

import { format } from 'timeago.js';

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

Минимальный пример:

import { format } from 'timeago.js';

const result = format('2025-01-01');

console.log(result);

Возможный вывод:

5 months ago

Установка конкретной версии

Yarn позволяет устанавливать строго определённые версии.

Пример:

yarn add timeago.js@4.0.2

После установки в package.json фиксируется нужная версия.


Установка как devDependency

Обычно timeago.js используется в production-зависимостях, однако при необходимости пакет можно установить как dev-зависимость:

yarn add timeago.js --dev

или:

yarn add timeago.js -D

Тогда запись попадёт в раздел:

{
  "devDependencies": {
    "timeago.js": "^4.0.2"
  }
}

Использование с TypeScript

Начиная с современных версий библиотека содержит встроенные типы TypeScript.

Установка выполняется стандартным способом:

yarn add timeago.js

Пример TypeScript-кода:

import { format } from 'timeago.js';

const date: string = '2025-05-01';

const result: string = format(date);

console.log(result);

Дополнительная установка @types обычно не требуется.


Установка в React-проект

Если проект создан через Vite или Create React App:

yarn add timeago.js

Пример компонента:

import { format } from 'timeago.js';

function PostDate() {
  return (
    <span>
      {format('2025-05-20')}
    </span>
  );
}

export default PostDate;

Установка в Vue-проект

Подключение аналогично:

yarn add timeago.js

Пример:

import { format } from 'timeago.js';

export default {
  data() {
    return {
      createdAt: '2025-05-20'
    };
  },
  computed: {
    relativeDate() {
      return format(this.createdAt);
    }
  }
};

Установка в Node.js-приложение

Для серверных приложений библиотека устанавливается тем же способом:

yarn add timeago.js

Пример:

const { format } = require('timeago.js');

console.log(format(Date.now() - 1000 * 60));

Результат:

1 minute ago

Работа Yarn Lock

Файл yarn.lock играет важную роль:

  • фиксирует точные версии пакетов;
  • обеспечивает одинаковую установку у всех разработчиков;
  • предотвращает случайные обновления зависимостей.

Пример фрагмента:

timeago.js@^4.0.2:
  version "4.0.2"

Удалять yarn.lock без необходимости не рекомендуется.


Повторная установка зависимостей

Если папка node_modules была удалена:

yarn install

Yarn восстановит все зависимости из package.json и yarn.lock.


Обновление библиотеки

Обновление до последней версии:

yarn upgrade timeago.js

Обновление до конкретной версии:

yarn upgrade timeago.js@4.0.2

Удаление библиотеки

Удаление выполняется командой:

yarn remove timeago.js

Yarn:

  • удаляет пакет из node_modules;
  • очищает запись в package.json;
  • обновляет yarn.lock.

Проверка информации о пакете

Получение сведений о библиотеке:

yarn info timeago.js

Команда выводит:

  • доступные версии;
  • описание;
  • зависимости;
  • метаданные пакета.

Установка в монорепозиториях

В проектах с Yarn Workspaces библиотека может устанавливаться:

В корневой workspace

yarn add timeago.js -W

В отдельный пакет

yarn workspace frontend add timeago.js

Это особенно удобно при разделении frontend и backend частей приложения.


Использование offline-кэша Yarn

После первой установки Yarn сохраняет пакет в локальном кэше.

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

yarn install

Очистка кэша:

yarn cache clean

Возможные ошибки при установке

Команда yarn не найдена

Ошибка:

yarn: command not found

Причина:

  • Yarn не установлен;
  • переменная PATH настроена некорректно.

Решение:

npm install -g yarn

Ошибка доступа

Ошибка:

EACCES permission denied

Причины:

  • недостаточно прав;
  • системные ограничения.

В Linux и macOS может потребоваться:

sudo npm install -g yarn

Конфликт зависимостей

Иногда возникают несовместимости версий.

Решения:

yarn cache clean

Удаление зависимостей:

rm -rf node_modules

Повторная установка:

yarn install

Отличия yarn add от npm install

Yarn npm
yarn add timeago.js npm install timeago.js
создаёт yarn.lock создаёт package-lock.json
более агрессивное кэширование стандартное кэширование
Workspaces встроены Workspaces появились позже

Использование с Vite

Установка:

yarn add timeago.js

Пример:

import { format } from 'timeago.js';

console.log(format(new Date()));

Запуск проекта:

yarn dev

Использование с Next.js

Установка библиотеки:

yarn add timeago.js

Пример компонента:

import { format } from 'timeago.js';

export default function ArticleDate() {
  return (
    <p>{format('2025-05-10')}</p>
  );
}

Использование в браузере через сборщик

После установки через Yarn библиотека подключается в bundler-системах:

  • Webpack;
  • Vite;
  • Parcel;
  • Rollup;
  • esbuild.

Пример:

import { format } from 'timeago.js';

document.body.innerHTML = format(Date.now() - 60000);

Проверка размера зависимости

Анализ установленных пакетов:

yarn why timeago.js

Команда показывает:

  • почему пакет установлен;
  • какие зависимости его используют;
  • размер библиотеки.

Автоматическая установка зависимостей CI/CD

В системах непрерывной интеграции обычно используется:

yarn install --frozen-lockfile

Это гарантирует:

  • строгое соответствие yarn.lock;
  • отсутствие неожиданных обновлений;
  • стабильность сборок.

Использование Yarn Berry

В Yarn 2+ (Berry) установка выглядит аналогично:

yarn add timeago.js

Однако могут использоваться:

  • Plug’n’Play;
  • отсутствие папки node_modules;
  • новая система конфигурации .yarnrc.yml.

Пример конфигурации:

nodeLinker: pnp

Библиотека timeago.js корректно работает и в таком окружении.


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

Создание проекта и подключение библиотеки полностью:

mkdir app
cd app

yarn init -y

yarn add timeago.js

Создание файла index.js:

import { format } from 'timeago.js';

console.log(format('2025-01-01'));

Запуск:

node index.js

Результат:

5 months ago