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

После того как пакет установлен через npm или yarn, первостепенная задача — убедиться, что библиотека доступна в проекте и функционирует без ошибок. Неправильная установка или конфликт зависимостей могут привести к тому, что код будет подключаться без ошибок импорта, но работать некорректно.


Проверка наличия пакета в node_modules

После установки директория node_modules/timeago.js должна существовать:

ls node_modules/timeago.js

Ожидаемое содержимое:

dist/
src/
package.json
README.md

Если директория отсутствует, установка не завершилась — следует повторить:

npm install timeago.js

Проверка через package.json

В package.json проекта должна появиться запись в dependencies:

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

Если запись отсутствует, а node_modules содержит пакет — установка выполнялась без сохранения зависимости. В таком случае установить повторно с явным сохранением:

npm install timeago.js --save

Базовая проверка импорта

Создать тестовый файл check.js в корне проекта:

import { format } from 'timeago.js';

const result = format(Date.now() - 1000 * 60 * 5);

console.log(result);

Запустить через Node.js (с поддержкой ESM):

node --input-type=module < check.js

или через транспилятор:

npx babel-node check.js

Ожидаемый вывод:

5 minutes ago

Проверка через CommonJS

Если проект использует CommonJS:

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

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

Запуск:

node check.js

Проверка версии

node -e "console.log(require('timeago.js/package.json').version)"

Или через npm:

npm list timeago.js

Вывод:

my-project@1.0.0
└── timeago.js@4.0.2

Проверка в браузере через CDN

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

<script src="https://unpkg.com/timeago.js/dist/timeago.min.js"></script>
<script>
  console.log(timeago.format(Date.now() - 10000));
</script>

Ожидаемый вывод в консоли:

10 seconds ago

Проверка при сборке через Webpack или Vite

Если проект использует бандлер, создать простой входной файл и запустить сборку в dev-режиме:

Vite:

npx vite

Webpack:

npx webpack --mode development

Отсутствие ошибок в выводе сборщика подтверждает корректную установку.


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

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

Некоторые версии timeago.js требуют Node.js ≥ 12. Проверить версию:

node --version

Ошибка ERR_REQUIRE_ESM

Возникает, когда CommonJS-проект пытается использовать ESM-пакет:

Error [ERR_REQUIRE_ESM]: Must use import to load ES Module

Решение — использовать динамический импорт:

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

или настроить type: "module" в package.json.

Ошибка Cannot find module

Cannot find module 'timeago.js'

Причины:

  • пакет не установлен;
  • неверный рабочий каталог;
  • отсутствует node_modules.

Решение:

npm install

Проверка с локализацией

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

import { format, register } from 'timeago.js';
import ru from 'timeago.js/esm/lang/ru';

register('ru', ru);

console.log(format(Date.now() - 3600000, 'ru'));

Ожидаемый вывод:

1 час назад

Автоматическая проверка в тестах

В CI-пайплайне можно добавить простой тест, проверяющий доступность библиотеки:

import { format } from 'timeago.js';

const result = format(Date.now() - 1000);

if (typeof result !== 'string') {
  throw new Error('timeago.js installation check failed');
}

console.log('timeago.js OK:', result);

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