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

В настоящее время я не могу запустить npm install в любом проекте с сегодняшнего дня. Я запускаю node v8.2.1 и npm 5.3.0 (установлен через nvm).

При вводе npm install он застрял на fetchMetadata каждый раз: ⸨ ░░░░░░░░░░░░░░░░⸩ ⠧ fetchMetadata: sill pacote range manifest for [email protected]^1.0.1 fetched in 197ms

Я попытался переключиться на npm 5.0.3, который работал безупречно, но все равно застревает.

Детали для моего компьютера: MacBook Pro работает macOS 10.12.6

Ответ 1

В первую очередь запустите npm install --verbose, чтобы увидеть больше!

Что случилось в моем случае:

В вашем package.json поиске пакетов, которые вы получаете непосредственно от Github. В моем случае такой пакет больше не существовал. Такие строки выглядят как

"NAME_OF_PACKAGE": "git+ssh://[email protected]/SOME_USER/NAME_OF_PACKAGE.git",

Удалите пакет, исправьте имя/местоположение или измените версию версии npm пакета.


Дальнейшее примечание. У меня появилось несколько других подобных ошибок, но все же имя пакета отличается от [email protected]^1.0.1. У меня также были [email protected] или [email protected]


Для меня все, что не работает: rm -rf ~/.npm, npm cache clean или rm package-lock.json все не работает!

Ответ 2

Вопрос довольно старый, но я попал в этот сценарий в эти дни.

Я пробовал каждое прочитанное предложение, чтобы решить проблему, связанную с процессом установки npm (очистка и проверка npm, удаление и переустановка пакета, удаление и установка всего и т.д.), Которая выглядит как "заблокированный" синдром, Ничто не было успешным в моем случае.

Как только я обнаружил, что моя сеть полностью настроена и работает без каких-либо правил брандмауэра, прокси-сервера и/или странных правил маршрутизации, я начал устанавливать пакеты с помощью (например, cli) npm install -g @angular/cli --verbose и обнаружил, что все подключения к URL-адресу registry.npmjs.org были выполнены в https. Это была проблема в моем случае.

По неизвестной причине npm выходит из строя в не очень понятном состоянии во время соединения с удаленным сервером, без каких-либо сетевых ошибок или предупреждений. Просто для извлечения данных требуется огромное количество времени. Права доступа? SSL-сертификаты или какая-то конкретная проверка на это? Какой-то странный маршрут в сети?

На данный момент это всего лишь домыслы. Я оставил компьютер включенным всю ночь, и пакеты были установлены правильно, но это безумие. Не так ли?

После переключения соединений на http с помощью команды npm config set registry http://registry.npmjs.org / --global все работало нормально в разумные сроки для процесса установки пакетов.

Вероятно, есть кое-что еще, что я пропускаю, но в моем случае простой http решил проблему.

Ubuntu 18.04.1 LTS/узел v8.12.0/npm 6.4.1/nvm 0.33.11

Ответ 3

Я испытал это и зафиксировал его с помощью rm -rf ~/.npm или npm cache clean.

Если это не сработает, возможно, установите с помощью Homebrew вместо nvm, чтобы устранить некоторые возможности.

Ответ 4

У меня была такая же проблема, но ни одно из этих решений не работало правильно. Наконец, я установил пакеты через пряжа, которая совместима с npm. Согласно официальному сайту:

Миграция с npm должна быть довольно простым процессом для большинства пользователей. Пряжа может использовать тот же формат package.json, что и npm, и может устанавливать любой пакет из реестра npm.

Просто установите пряжу, а затем запустите установку, используя следующую команду: эквивалент npm install в пряже:

yarn install

Подробнее at- Пряжа: переход из npm.


Вышеупомянутый ответ - тот, который я предоставил по аналогичной теме: npm не работает - "читать ECONNRESET" .

Ответ 5

Я решаю эту проблему, открыв package-lock.json и сбросив все json. Удалить текущий контент и заменить его

{}

затем переустановите пакет.

Ответ 6

  1. ПРИЧИНА: причина этого заключается в следующем: клиент не запрашивает: "Введите кодовую фразу для /home/USERS/.ssh/id_rsa:", и я использовал, чтобы правильно получить приглашение в npm @5, но обновить до npm @6 происходит.
  2. РЕШЕНО: # eval 'ssh-agent' # ssh-add//автоматически вводим фразу-пароль, не работая вручную.

Ответ 7

В моем случае удаление пакета связано с тем, что загружает навсегда решить проблему

    "swagger-core-api": "apigee-127/swagger-core-api" //removing this 

Но настоящей причиной подобных проблем является проект без полных данных git, отправленных на github (из-за путаницы в .gitconfig). Затем github копирует файлы, которые не соответствуют ни одному в репозитории (или Download ZIP).

Ответ 8

Возможно, это не лучшее решение, но мой обходной путь заключался в том, чтобы подтолкнуть мои активные ветки к исходному, повторно клонировать репо в другую папку, а затем установить npm в новую папку.

Ответ 9

Я застрял при npm install с помощью couchdb-fauxton. Обычно я сижу за корпоративным брандмауэром и везде использую прокси, но переключаюсь на прямое соединение, потому что использование npm config proxy мне не помогло. Но установка npm использует git , который я по-прежнему настроил на использование прокси, так как моя установка застряла. После отключения прокси в git все заработало.

Ответ 10

Добавление в ответ @CptUnlucky.

npm config set registry "http://registry.npmjs.org"

Это заставляет http извлечь. Если это само по себе не работает, ограничьте количество одновременных соединений, которые могут быть установлены. Максимальное количество подключений по умолчанию - 50.

npm set maxsockets 3

Это сработало для меня.