Node.js LinuxWindowsmacOS

Node.js: ERR_REQUIRE_ESM — используйте import для ES-модуля

  • Обновлено
  • Чтение ≈ 2 минуты

Краткий ответ

ERR_REQUIRE_ESM возникает, когда CommonJS пытается через require загрузить модуль, который поставляется только в формате ES Modules. Проверьте package.json зависимостей и тип модуля, затем используйте import или динамический import() там, где это допустимо.

В этой статье
  1. Что означает сообщение
  2. Как отличить причины
  3. Пошаговое решение
  4. Что важно перед исправлением

#Что означает сообщение

Сообщение
ERR_REQUIRE_ESM

ERR_REQUIRE_ESM возникает, когда CommonJS пытается через require загрузить модуль, который поставляется только в формате ES Modules. Смешение двух систем импорта — причина на уровне проекта.

#Как отличить причины

Возможная причинаКак узнатьЧто делать
ESM-пакетЗависимость публикует только ES-модуль.Проверьте exports/type и используйте import.
CJS-кодКод CommonJS пытается загрузить ESM через require.Примените совместимый import() либо миграцию файла.
Версия пакетаВерсия пакета сменила формат экспорта.Подберите официально совместимую версию с lock-файлом.
КонфигКонфигурация проекта смешивает типы модулей.Сверьте package.json type и расширения .cjs/.mjs.

#Пошаговое решение

  1. Проверьте тип модулейОткройте текст ошибки ERR_REQUIRE_ESM и название пакета. В package.json проекта посмотрите поле type, а у зависимости — exports/type в её package.json. Ошибка означает попытку загрузить ES-модуль через CommonJS require() в несовместимой комбинации версий.
  2. Для ES-модуля используйте импортЕсли файл проекта работает как ESM (.mjs либо "type": "module"), замените const pkg = require("pkg") на import pkg from "pkg" согласно экспорту пакета. Имя импорта зависит от библиотеки; проверьте её документацию. Не переводите весь проект в ESM одной правкой без проверки других require и __dirname.
  3. Для CommonJS используйте совместимый вариантВ .cjs или пакете без type: module при необходимости используйте асинхронный const mod = await import("pkg") внутри async-функции. Если проект не допускает изменения, выберите официально поддерживаемую версию зависимости, совместимую с вашим Node.js, закрепив её в lock-файле. Не устанавливайте случайную старую версию ради ошибки.
  4. Проверьте сборку и запускВ терминале выполните node --version, затем команду запуска из package.json. Если импорт разрешён и приложение работает, ошибка исправлена. При ERR_PACKAGE_PATH_NOT_EXPORTED отдельно проверьте публичные пути экспорта пакета; это другой случай.

#Что важно перед исправлением

Не заменяйте бездумно все require в проекте и не понижайте версии пакетов без проверки совместимости и фиксации изменений lock-файла.

Так эту ошибку тоже называют

Источники и обновления

Последнее обновление статьи: 2 ноября 2026. Версии программ и интерфейсы меняются — если шаги не совпадают с вашей версией, сверяйтесь с документацией производителя.