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