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

Пакет timeago.js распространяется через менеджер пакетов npm и может подключаться практически в любом современном JavaScript-проекте: браузерных приложениях, Node.js-сервисах, SPA-фреймворках и SSR-решениях.

Установка через npm обеспечивает:

  • управление версиями библиотеки;
  • автоматическое подключение зависимостей;
  • интеграцию со сборщиками (Vite, Webpack, Rollup);
  • возможность использования ES Modules и CommonJS;
  • обновление библиотеки через стандартные инструменты экосистемы Node.js.

Требования перед установкой

Перед подключением библиотеки необходим установленный:

  • Node.js;
  • npm или совместимый менеджер пакетов (pnpm, yarn).

Проверка доступности Node.js и npm:

node -v
npm -v

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

v22.1.0
10.7.0

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

Если проект ещё не создан, используется инициализация npm:

npm init -y

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

package.json

Этот файл хранит:

  • зависимости проекта;
  • метаданные приложения;
  • npm-скрипты;
  • информацию о версиях пакетов.

Пример минимального package.json:

{
  "name": "timeago-project",
  "version": "1.0.0"
}

Установка timeago.js

Основная команда установки:

npm install timeago.js

Сокращённая форма:

npm i timeago.js

После установки npm:

  • загрузит библиотеку в директорию node_modules;
  • добавит запись в package.json;
  • обновит файл package-lock.json.

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

Пример структуры каталогов:

project/
│
├── node_modules/
│   └── timeago.js/
│
├── package.json
├── package-lock.json
└── src/

Запись зависимости в package.json

После установки появляется секция dependencies:

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

Значение символа ^

Запись:

"^4.0.2"

означает:

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

Возможные обновления:

4.0.3
4.1.0
4.5.8

Недопустимое обновление:

5.0.0

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

Иногда требуется фиксированная версия библиотеки.

Пример:

npm install timeago.js@4.0.2

Запись в package.json:

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

Такая фиксация особенно полезна:

  • в production-проектах;
  • при поддержке старого кода;
  • для предотвращения несовместимых изменений.

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

Обычно timeago.js используется как обычная runtime-зависимость.

Стандартный вариант:

npm install timeago.js

Однако библиотеку можно установить и как devDependency:

npm install -D timeago.js

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

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

Такой подход встречается редко, поскольку библиотека обычно используется в runtime браузера или сервера.


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

ES Modules

Современный вариант подключения:

import { format } from 'timeago.js';

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

import { format } from 'timeago.js';

const result = format(new Date(Date.now() - 60000));

console.log(result);

Результат:

1 minute ago

CommonJS

Для старых Node.js-проектов:

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

console.log(
  timeago.format(Date.now() - 60000)
);

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

Проверка через npm:

npm list timeago.js

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

project@1.0.0
└── timeago.js@4.0.2

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

Удаление пакета:

npm uninstall timeago.js

npm автоматически:

  • удалит пакет из node_modules;
  • обновит package.json;
  • изменит package-lock.json.

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

Если каталог node_modules был удалён:

npm install

npm восстановит все зависимости из package.json.


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

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

npm create vite@latest

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

cd my-app

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

npm install

Подключение timeago.js:

npm install timeago.js

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

Файл:

main.js

Код:

import { format } from 'timeago.js';

const date = new Date(Date.now() - 3600 * 1000);

document.body.innerHTML = `
  <h1>${format(date)}</h1>
`;

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

Установка:

npm install timeago.js

Импорт:

import { format } from 'timeago.js';

console.log(format(Date.now() - 5000));

Webpack автоматически включит библиотеку в итоговый bundle.


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

Установка

npm install timeago.js

Пример React-компонента

import { format } from 'timeago.js';

function PostDate() {
  const createdAt = Date.now() - 1000 * 60 * 15;

  return (
    <span>{format(createdAt)}</span>
  );
}

export default PostDate;

Результат:

15 minutes ago

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

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

<script setup>
import { format } from 'timeago.js';

const createdAt = Date.now() - 1000 * 60 * 60;
</script>

<template>
  <p>{{ format(createdAt) }}</p>
</template>

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

Файл:

server.js

Код:

import { format } from 'timeago.js';

const created = new Date(Date.now() - 86400000);

console.log(format(created));

Запуск:

node server.js

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

Установка

npm install timeago.js

Дополнительные типы обычно не требуются, поскольку библиотека содержит встроенные TypeScript-описания.


Пример TypeScript

import { format } from 'timeago.js';

const date: Date = new Date();

console.log(format(date));

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

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

npm ci

Отличия от npm install:

npm install npm ci
Может изменять lock-файл Использует строго lock-файл
Медленнее Быстрее
Подходит для разработки Подходит для CI/CD

Работа package-lock.json

Файл:

package-lock.json

фиксирует:

  • точные версии зависимостей;
  • дерево зависимостей;
  • контроль целостности пакетов.

Это обеспечивает одинаковую установку библиотеки на разных машинах.


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

Альтернативный менеджер пакетов:

pnpm add timeago.js

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

Команда:

yarn add timeago.js

Проверка содержимого пакета

Просмотр информации о библиотеке:

npm info timeago.js

Просмотр установленной версии:

npm list timeago.js

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

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

npm update timeago.js

Либо:

npm install timeago.js@latest

Проверка устаревших зависимостей

Команда:

npm outdated

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

Package      Current   Wanted   Latest
timeago.js   4.0.1     4.0.2    4.0.2

Типичные ошибки установки

Ошибка: npm command not found

Причина:

  • npm не установлен;
  • Node.js отсутствует в PATH.

Решение:

  • переустановить Node.js;
  • проверить системные переменные.

Ошибка: Cannot find module ‘timeago.js’

Причины:

  • библиотека не установлена;
  • повреждён node_modules;
  • запуск происходит вне каталога проекта.

Решение:

npm install

или:

npm install timeago.js

Ошибка конфликтов зависимостей

Пример:

ERESOLVE unable to resolve dependency tree

Возможные решения:

npm install --legacy-peer-deps

или очистка:

rm -rf node_modules
rm package-lock.json
npm install

Проверка импорта в браузере

Пример минимального файла:

import { format } from 'timeago.js';

console.log(
  format(Date.now() - 3000)
);

Если в консоли выводится:

just now

библиотека подключена корректно.


Особенности tree shaking

timeago.js поддерживает современную модульную структуру.

Импорт:

import { format } from 'timeago.js';

позволяет сборщикам:

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

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

При использовании npm workspaces установка возможна:

npm install timeago.js -w frontend

где:

frontend

— имя workspace-пакета.


Локальная и глобальная установка

Локальная установка

Стандартный вариант:

npm install timeago.js

Библиотека доступна только внутри проекта.


Глобальная установка

npm install -g timeago.js

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


Проверка размера пакета

Команда:

npm view timeago.js dist.unpackedSize

Позволяет оценить размер установленной библиотеки.


Offline-кэширование npm

npm сохраняет пакеты в локальном кэше.

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

npm install

может происходить быстрее благодаря локально сохранённым архивам.

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

npm cache clean --force

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

Пример Dockerfile:

FROM node:22

WORKDIR /app

COPY package*.json ./

RUN npm install

COPY . .

CMD ["node", "server.js"]

При наличии зависимости в package.json библиотека будет автоматически установлена внутри контейнера.


Проверка безопасности зависимостей

Команда:

npm audit

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

Автоматическое исправление:

npm audit fix

Установка в production-режиме

Только production-зависимости:

npm install --production

или:

NODE_ENV=production npm install

В этом случае devDependencies не устанавливаются.


Совместимость с ESM и CommonJS

timeago.js поддерживает:

  • ES Modules;
  • CommonJS;
  • современные bundler-системы;
  • браузерные сборки.

Это делает библиотеку совместимой с большинством JavaScript-окружений.