npm LinuxWindowsmacOS 404

npm ERR! 404 Not Found — пакет не найден

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

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

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

В этой статье
  1. Что означает ошибка
  2. Причины и решения
  3. Пошаговое решение
  4. Имя и версия
  5. Реестр и приватные пакеты
  6. Кэш и прокси
  7. Как проверить результат
  8. Распространённые случаи 404

#Что означает ошибка

404
npm ERR! 404

npm ERR! 404 Not Found - GET https://registry.npmjs.org/пакет означает, что npm не нашёл пакет или версию: опечатка, приватный пакет без доступа, удалённая версия или неверный реестр.

Проверьте имя на npmjs.com.

Затем реестр и авторизацию.

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

#Причины и решения

Возможная причинаКак узнатьЧто делать
ОпечаткаИмя.404.Исправьте.
Приватный пакетАвторизация.404.Войдите.
Другой реестр.npmrc.404.Проверьте.
Пакет удалёнАвтор.404.Ищите замену.

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

  1. Проверьте имя пакетаОткройте терминал в корне проекта (VS Code → «Терминал» → «Новый терминал»), проверьте package.json и повторите установку. Из сообщения npm ERR! 404 Not Found выпишите точное имя пакета (для scoped пакета оно начинается с @организация/имя) и URL запроса; убедитесь, что там нет секретного токена, прежде чем передавать лог. Откройте https://www.npmjs.com/ в браузере и выполните поиск этого имени. Если такого пакета нет, исправьте опечатку или название зависимости, а не пытайтесь чистить кэш.
  2. Проверьте версиюПроверьте, доступна ли запрошенная версия существующего пакета: в каталоге проекта выполните npm view НАЗВАНИЕ versions --json, подставив настоящее имя, и сравните список с диапазоном в package.json и package-lock.json. Если указана несуществующая версия, изменяйте её только после проверки совместимости и сохранения изменений в системе контроля версий. Если пакет виден в браузере, но npm не видит его, переходите к настройке реестра.
  3. Проверьте реестрВведите npm config get registry и проверьте адрес активного реестра. Далее откройте .npmrc в каталоге проекта и пользовательский файл ~/.npmrc (Windows: обычно %USERPROFILE%\.npmrc) и найдите registry= либо строки @scope:registry=. Для scoped-пакетов действует отдельный реестр. Если адрес неверный, исправьте только относящуюся к проекту запись согласно документации организации; не переносите частные пакеты в общедоступный реестр и не публикуйте содержимое .npmrc вместе с токенами.
  4. Авторизуйтесь для приватных пакетовТолько для приватного пакета, к которому вам официально предоставлен доступ, проверьте правильность реестра, права на проект и срок токена. В терминале выполните npm whoami --registry=АДРЕС_РЕЕСТРА после подстановки фактического HTTPS-адреса; при отсутствии авторизации используйте npm login --registry=АДРЕС_РЕЕСТРА по правилам провайдера (может открыться браузер). Ошибка 404 у закрытого пакета иногда скрывает отсутствие прав. Не вставляйте токены в команды с историей оболочки и не отключайте проверку сертификатов.
  5. Очистите кэшКэш проверяйте только если имя, версия, реестр и разрешения верны, а проблема непостоянна. В корне проекта запустите npm cache verify: команда проверяет и при необходимости очищает повреждённые записи без полного принудительного удаления. Затем повторите исходную команду npm install/npm ci из проекта. Если 404 сохраняется для конкретного URL, запишите имя и версию пакета, выбранный реестр и время ответа и обратитесь к владельцу пакета; npm cache clean --force не исправит реальное отсутствие публикации.

#Имя и версия

Проверьте точное написание на npmjs.com: регистр, область @scope/name. Проверьте существование версии: npm view имя versions. Удалённые (unpublished) версии не восстановить — смените версию в package.json. Для git-зависимостей проверьте URL.

#Реестр и приватные пакеты

Проверьте реестр: npm config get registry (должно быть https://registry.npmjs.org/). Для приватных пакетов нужен токен в .npmrc: //registry.npmjs.org/:_authToken=${NPM_TOKEN} и npm login. Для области: @company:registry=https://npm.company.com/. Ошибка 404 вместо 403 скрывает существование приватного пакета.

#Кэш и прокси

Кэш npm редко является причиной настоящего 404. Выполните npm cache verify только после проверки названия, версии, реестра и прав. Не удаляйте package-lock.json, если нужно воспроизводимое окружение: его изменение влияет на версии всего проекта. При подозрении на неправильный URL проверьте настройки .npmrc, доступность зеркала и соответствие пакета выбранному реестру.

Linux · Терминал (Bash)Команда
Заменить название пакета; команды диагностические, чистку с --force не делать.
npm config get registry
# Подставьте действительное имя пакета из 404:
npm view НАЗВАНИЕ_ПАКЕТА versions --json
# Проверка целостности кэша без принудительного удаления:
npm cache verify

#Как проверить результат

После проверки имени и доступной версии можно на отдельной ветке попробовать npm install ИМЯ@ВЕРСИЯ --dry-run, заменив заглушки реальными значениями; это не гарантирует успешной последующей установки. Для приватного пакета подтвердите, что нужная учётная запись имеет доступ к конкретному репозиторию. В системах непрерывной сборки не выводите npm config list или переменные окружения целиком в журнал: в конфигурации могут находиться секреты. При сохранении 404 обратитесь к владельцу реестра.

#Распространённые случаи 404

Пакеты, удалённые из реестра по требованию авторов или из-за нарушений, больше не доступны: ищите форк или актуальную замену. Ошибка 404 для @types/... означает, что типов для пакета в DefinitelyTyped нет — пакет, вероятно, содержит собственные типы. Для пакетов GitHub (user/repo) 404 возникает при отсутствии доступа к приватному репозиторию. Если команда падает только в CI, проверьте, что переменная NODE_AUTH_TOKEN передана и не пуста.

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

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

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