yarn — менеджер пакетов для JavaScript, предназначенный
для установки зависимостей, управления версиями библиотек и ускорения
работы с проектами. Библиотека timeago.js распространяется
через npm-репозиторий и полностью поддерживает установку через Yarn.
Основные преимущества использования Yarn при подключении
timeago.js:
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
Он содержит информацию о проекте и список зависимостей.
Установка выполняется одной командой:
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 |
Зафиксированные версии пакетов |
Проверить наличие библиотеки можно несколькими способами.
"dependencies": {
"timeago.js": "^4.0.2"
}
yarn list --pattern timeago
Пример результата:
└─ timeago.js@4.0.2
Для проектов на Node.js:
const timeago = require('timeago.js');
Для современных сборщиков:
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 фиксируется нужная
версия.
Обычно timeago.js используется в
production-зависимостях, однако при необходимости пакет можно установить
как dev-зависимость:
yarn add timeago.js --dev
или:
yarn add timeago.js -D
Тогда запись попадёт в раздел:
{
"devDependencies": {
"timeago.js": "^4.0.2"
}
}
Начиная с современных версий библиотека содержит встроенные типы 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 обычно не требуется.
Если проект создан через 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;
Подключение аналогично:
yarn add timeago.js
Пример:
import { format } from 'timeago.js';
export default {
data() {
return {
createdAt: '2025-05-20'
};
},
computed: {
relativeDate() {
return format(this.createdAt);
}
}
};
Для серверных приложений библиотека устанавливается тем же способом:
yarn add timeago.js
Пример:
const { format } = require('timeago.js');
console.log(format(Date.now() - 1000 * 60));
Результат:
1 minute ago
Файл 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 библиотека может устанавливаться:
yarn add timeago.js -W
yarn workspace frontend add timeago.js
Это особенно удобно при разделении frontend и backend частей приложения.
После первой установки Yarn сохраняет пакет в локальном кэше.
Повторная установка происходит значительно быстрее:
yarn install
Очистка кэша:
yarn cache clean
Ошибка:
yarn: command not found
Причина:
Решение:
npm install -g yarn
Ошибка:
EACCES permission denied
Причины:
В Linux и macOS может потребоваться:
sudo npm install -g yarn
Иногда возникают несовместимости версий.
Решения:
yarn cache clean
Удаление зависимостей:
rm -rf node_modules
Повторная установка:
yarn install
| Yarn | npm |
|---|---|
yarn add timeago.js |
npm install timeago.js |
создаёт yarn.lock |
создаёт package-lock.json |
| более агрессивное кэширование | стандартное кэширование |
| Workspaces встроены | Workspaces появились позже |
Установка:
yarn add timeago.js
Пример:
import { format } from 'timeago.js';
console.log(format(new Date()));
Запуск проекта:
yarn dev
Установка библиотеки:
yarn add timeago.js
Пример компонента:
import { format } from 'timeago.js';
export default function ArticleDate() {
return (
<p>{format('2025-05-10')}</p>
);
}
После установки через Yarn библиотека подключается в bundler-системах:
Пример:
import { format } from 'timeago.js';
document.body.innerHTML = format(Date.now() - 60000);
Анализ установленных пакетов:
yarn why timeago.js
Команда показывает:
В системах непрерывной интеграции обычно используется:
yarn install --frozen-lockfile
Это гарантирует:
yarn.lock;В Yarn 2+ (Berry) установка выглядит аналогично:
yarn add timeago.js
Однако могут использоваться:
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