npm install зависает


82

Это мой package.json:

{
"name": "my-example-app",
"version": "0.1.0",
"dependencies": {

  "request": "*",
  "nano": "3.3.x",
  "async": "~0.2"
  }
}

Теперь, когда я открываю cmd и запускаю npm install, установка зависает. Что я делаю неправильно?


6
Где висит? Перед любым выходом?
Ry-

1
Пожалуйста, опубликуйте результат, который вы видите при запуске npm install.
Филипп Классен,

31
Попробуйте npm install --verboseи посмотрите, сможете ли вы что-нибудь найти.
Dogbert 01

Нет, я получаю какой-то вывод ...
user1090227 01

ouput: npm WARN package.json my-example-app.1.0 README> md файл не найден!
user1090227 01

Ответы:


124

У меня такая же проблема. Причина - был настроен неправильный прокси, из-за чего npm не мог загружать пакеты.

Так что лучше всего увидеть результат

$ npm install --verbose

и определите проблему. Если вы никогда не настраивали прокси, то возможные причины могут быть

  • Очень устаревшая версия npm.
  • Проблема с вашим интернет-соединением.
  • Npm недостаточно прав для изменения файлов.

9
npm config set loglevel infoа затем npm iснова запустить
gcb 01

npm ls --global --parseable --long --loglevel info
Ciasto piekarz

Я сделал несколько итераций, перезапустив npm install --verbose, удалив файл по последнему пути журнала, показанному перед зависанием. Наконец установка подошла к концу.
Зон

Это исправило это для меня. Я устанавливал webpack на OS X, и он завис в процессе установки. Я дал ему время и наконец убил. Я запустил npm install --versbose(следуя вашему совету), а затем повторно запустил установку веб-пакета. Все хорошо!
jamesnotjim

Установка yarnглобально с использованием и npmпоследующим запуском yarn installисправила это для меня (также yarnрегистрирует " There appears to be trouble with your network connection. Retrying...", но, по крайней мере, он не зависает и продолжается до тех пор, пока не Done in 1035s.будет зарегистрирован).
Top-Master

42

У меня была такая же проблема. Я попробовал

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

чтобы отключить https. Я тоже пробовал

npm set progress=false 

чтобы отключить индикатор выполнения (сообщалось, что он замедляет загрузку).

Проблема была в моем сетевом драйвере. Мне просто потребовалась перезагрузка и лаги исчезли.


4
+1 отключение https сработало для меня, когда мне --verboseсказали, что у меня не работаетnpm http fetch 200 https://registry.npmjs.org/some-project/-/some-project-X.X.X.tgz
user56reinstatemonica8

2
Я не знаю, что это был https или индикатор выполнения, но отключение обоих сделало свою работу! Спасибо!
M'sieur Toph '

5
Действительно ли полезно загрузить код через http, а затем запустить его? Код мог быть изменен.
Марк

Отключение https решило для меня все. После обновления узла до последней версии он начал случайным образом зависать при установке. Теперь отлично работает. К сожалению, возвращение к http решило проблему, но, по крайней мере, теперь работает.
Майкл Ли Кроуфорд

21

Вы можете попробовать удалить package-lock.jsonи запустить npm installпотом. Это сработало для меня.


Где я могу найти этот пакет?
Фелипе Мартинс Мело

1
Этот файл можно найти в корне проекта .. на том же уровне, что и package.json.
Франклин Хирата

мой npm installкаждый раз застревал на одном и том же пакете (даже на обеих машинах). Я удалил каталог package-lock.jsonи node_modulesкаталог (на всякий
случай

7

Я использую корпоративный прокси-сервер, поэтому обычно использую промежуточный прокси для включения аутентификации NTLM.

У меня была проблема с зависанием при установке npm при использовании прокси CNTLM. С NTLM-APS (аналогичный прокси) зависания исчезли.


Спасибо, у меня была такая же проблема, и я никуда не собирался. CNTLM у меня не работает впервые!
dcendent

Я также swithced для NTLM-АПС , и я увидел улучшение для моих npm installи meteor npm installкоманд.
Aaron C


2

Если это полезно для других, у меня сработало следующее:

На моей машине, несмотря на то, что прокси-сервер npm был установлен правильно, npm installвечно ждет, делая что-то вроде извлечения порога . Повторные попытки npm installснова и снова ждут одного и того же пакета.

После долгого ожидания npm installнапечатал сообщение об ошибке, подразумевающее, что git пытается что-то получить.

Проблема исчезла после настройки прокси-сервера git с помощью следующей команды:

git config --global http.proxy https://proxy-server:port

Обратите внимание , что httpsв значении части , http.proxyбез которой конфигурация не вступили в силу. Настройки прокси-сервера (http / https / порт) могут различаться для пользователей; поэтому стоит потратить немного времени на эксперименты с настройками прокси-сервера npm и git .


К сожалению, это может быть вызвано множеством проблем. Настройки прокси вам не нужны, у проекта npm слишком много выпусков или есть другие проблемы с подключением. В моем случае я решил одну из этих проблем перезагрузкой. Я знаю, что это глупое решение, но если вы тянете за волосы и еще не пробовали это сделать, я бы посоветовал вам это сделать. Я использую Mac Os Mojave, и это не первый раз, когда у меня возникают проблемы с подключением, когда мне приходится перезапускать компьютер. Видимо, что-то связанное с SSL.
HotFudgeSunday,

2

Когда ваш ключ ssh защищен паролем, запустите ssh-add. npm, вероятно, где-то зависает, запрашивая ваш пароль.


2

У меня была такая же проблема с macOS, после некоторого времени борьбы и поисков этот ответ фактически решил проблему для меня:

npm config rm proxy
npm config rm https-proxy
npm config set registry http://registry.npmjs.org/

1

Этот метод работает для меня, когда npm блокируется в установочном пакете для установки IONIC и ReactNative, а также в другом пакете npm.

Вы можете временно изменить:

npm config set prefix C:\Users\[username]\AppData\Roaming\npm\node_modules2

  • Измените путь в переменных среды. Набор:

    C: \ Users [имя пользователя] \ AppData \ Roaming \ npm \ node_modules2

  • Запустите команду, чтобы установить ваш пакет.

  • Откройте проводник, скопируйте ссылку:

    C: \ Users [имя пользователя] \ AppData \ Roaming \ npm \ node_modules

    ok файл yourpackage.CMD создал другую папку. Создал "node_modules2" в node_modules и содержит папку с вашим пакетом.

  • Скопируйте файл пакета CMD в родительскую папку «npm» .

  • Скопируйте папку вашего пакета в родительскую папку "node_modules" .

  • Теперь запустите:

    npm config set prefix C:\Users\[username]\AppData\Roaming\npm

  • Измените путь в переменных среды. Набор:

    C: \ Users [имя пользователя] \ AppData \ Roaming \ npm

Теперь пакет корректно работает с командной строкой.


1

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


0

Для всех, кто пользуется MacOS (я использую Mojave 10.14), мне помогло следующее: https://github.com/reactioncommerce/reaction/issues/1938#issuecomment-284207213

Вы бы запустили эти команды

echo kern.maxfiles=65536 | sudo tee -a /etc/sysctl.conf
echo kern.maxfilesperproc=65536 | sudo tee -a /etc/sysctl.conf
sudo sysctl -w kern.maxfiles=65536
sudo sysctl -w kern.maxfilesperproc=65536
ulimit -n 65536

Тогда попробуйте npm installеще раз.


0

Я не уверен, что ваша проблема вызвана той же причиной, что и моя, но я тоже столкнулся с зависанием «npm install» и смог это исправить.

В моем случае я хотел установить машинописный текст локально в проекте:

npm i typescript --save-dev

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

Я исправил это, сначала удалив глобально установленный машинописный текст с глобальным флагом -g:

npm uninstall typescript -g

После этого первая команда заработала! 👍


0

проверьте переменные среды для http и https

Существующие записи могут создавать некоторые проблемы. Попробуйте удалить эти записи.

Снова запустите «npm install».



0

Проверьте свой .npmrcфайл на наличие registryзаписи (которая определяет сервер, действующий как кеш пакетов).

Для меня npm installэто зависало на полпути, и это было из-за старого / не отвечающего сервера, указанного в моем .npmrcфайле. Удалите строку или закомментируйте:

>cat ~/.npmrc
#registry=http://oldserver:4873

(И / или уточните у своего ИТ-руководителя / руководителя проекта, почему это не работает;)


0

установка nvm (Node Version Manager) и понижение версии узла с 14 до 12 решили проблему в моем случае


0

npmМне помогло обновление на Mac OS. Используйте команду:

sudo npm install -g npm@latest

-32

* Попробуйте сделать sudo npm install.

* Если вы используете github, возможно, у вас нет разрешения и вам нужно сгенерировать открытый ключ SSH и добавить его в свою учетную запись настроек: ( https://help.github.com/articles/generating-ssh- ключи / )


3
Хорошая практика - избегать использования sudo как можно чаще, особенно для действий, связанных с конкретным проектом (а не общесистемным).
Илья Кондрашов

Согласитесь, но при использовании стека LAMP рекомендуется также размещать файлы веб-приложений в каталоге / var / www. Поэтому, если вы не предоставляете права доступа к этим папкам, вам понадобится sudo
Хоакин Диаз,
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.