Подтвердить что ты не робот

Npm зависает в postinstall/unlock

У меня есть сервер Linux, на котором запущены некоторые виртуальные машины с использованием KVM. Хост-машина является дериватором Debian с ядром 2.6.32-32 (-pve).

В примерно 75% случаев я запускаю npm install, он зависает при установке модулей. Я запустил его с глупым уровнем отладки, и он всегда зависает на линии

npm info postinstall [module name] (более старые версии npm)

или

npm verb unlock done using [...] (новые версии npm)

навсегда.

Это происходит в каждом проекте на главном компьютере и в виртуализованных системах для каждого node и каждой версии npm, которую я тестировал (много, включая новейшие (2.7.x atm)).

Он также не детерминирован. Иногда это работает, иногда нет, и большую часть времени он висит на другом модуле.

На моей машине dev (которая находится в той же сети, на которой работает OS X 10.10) она отлично работает.

Я не поддерживаю какой-либо прокси.

Что здесь может быть неправильным?

EDIT. Пока я решил эту проблему, проверяя все мои зависимости как gzipped файлы, используя https://github.com/JamieMason/shrinkpack

4b9b3361

Ответ 1

У меня была такая же проблема в течение нескольких часов, и я не мог решить, в чем проблема. Я попытался переустановить все несколько раз, вручную установив отдельные модули, переключившись с x64 на x86 версии NodeJS и т.д., И не получил нигде.

В конце концов, я изменил сети, от WiFi по ADSL2 + [~ 2mbps] до 4G Hotspot [~ 20mbps], и он работал через 30 секунд. Не знаю, почему, поскольку это не похоже на проблему с сетевой скоростью, но она решила проблему.

Надеюсь, это тоже поможет кому-то другому!

Ответ 2

У меня была та же проблема с нашими подчиненными Jenkins на основе Ubuntu, и она была решена путем обновления npm.

По умолчанию npm, установленный apt-get, теперь имеет версию 1.3.10, которая очень старая (показана npm --version). Существует как минимум два способа его обновления:

  • Запустите команду sudo npm install -g npm. Если вы хотите установить определенную версию, вы можете запустить ее в конце команды: sudo npm install -g [email protected].
  • Или вы можете добавить репозитории NodeSource, используя эти инструкции и запустить обычный sudo apt-get update.

Ответ 3

У меня такая же проблема на Windows. Я удалил папку npm-cache и переустановил npm. После этого все нормально работало. Папка npm-cache можно найти в

<your-drive>\Users\<your-name>\AppData\Roaming\npm-cache

Не забудьте включить "Просмотреть скрытые файлы, потому что папка AppData по умолчанию скрыта

Вы можете переустановить npm с помощью команды

npm i npm -g

Ответ 4

Я сделал то же самое, переключил свою сеть с WiFi на 3G и работал.

Ответ 6

У меня была такая же проблема и просто бегаю

npm cache clean

И это работает!

Ответ 7

Была такая же проблема в Windows. Решением было перезагрузить компьютер после установки узла и npm, а затем запустить командную строку от имени администратора.