npm挂在postinstall / unlock上

问题描述 投票:13回答:8

我有一台Linux服务器使用KVM运行一些虚拟机。主机是内核2.6.32-32(-pve)的Debian派生。

大约75%的时间我运行npm install,它在安装模块时挂起。我在愚蠢的调试级别运行它,它总是挂在线上

npm info postinstall [module name](较旧的npm版本)

要么

npm verb unlock done using [...](较新的npm版本)

永远。

它发生在主机上的每个项目和虚拟化系统上的每个节点以及我测试的每个npm版本(很多,包括最新版本(2.7.x atm))。

它也不是确定性的。有时它可以工作,有时不工作,而且大部分时间它都挂在不同的模块上。

在我的开发机器上(运行OS X 10.10的同一网络),它工作正常。

我并不支持任何代理。

这可能有什么问题?

编辑:暂时我通过使用https://github.com/JamieMason/shrinkpack将所有依赖项作为gzip压缩文件检入来解决此问题

linux node.js npm virtualization
8个回答
4
投票

几个小时我遇到了同样的问题,无法解决问题所在。我尝试重新安装几次,手动安装单个模块,从x64切换到x86版本的NodeJS等,并且无处可去。

最后,我改变了网络,从WiFi到ADSL2 + [~2mbps]到4G热点[~20mbps],它在30秒内工作。不知道为什么,因为它似乎不像网络速度问题,但它解决了问题。

希望这也有助于其他人!


3
投票

我在基于Ubuntu的Jenkins奴隶上遇到了同样的问题,它通过升级npm解决了。

npm安装的默认apt-get现在有版本1.3.10,这是非常古老的(由npm --version显示)。升级它至少有两种方法:

  1. 运行sudo npm install -g npm命令。如果要安装特定版本,可以在命令末尾运行它:sudo npm install -g [email protected]
  2. 或者你可以使用these instructions添加NodeSource存储库并运行通常的sudo apt-get update

1
投票

我在Windows上遇到了同样的问题。我删除了我的npm-cache文件夹并重新安装了npm。之后一切都开始正常。 npm-cache文件夹可以在

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

请记住启用“查看隐藏文件”,因为默认情况下AppData文件夹是隐藏的

您可以使用命令重新安装npm,

npm i npm -g

0
投票

我做了同样的事情,将我的网络从WiFi切换到3G,它运作良好。


0
投票

我遇到了同样的问题,这是Github上的问题:https://github.com/npm/npm/issues/7862

有一些有用的提示似乎可以帮助一些人。

对于我做$ npm install -g node-gyp(如此处建议:http://gangmax.me/blog/2013/05/13/resolve-npm-update-node-gyp-hung-problem/)修复了问题。


0
投票

我有同样的问题,只是运行

npm cache clean

它的工作原理!


0
投票

在Windows中遇到同样的问题。解决方案是在安装node和npm后重新启动,然后以管理员身份运行命令提示符。


-1
投票

=>这个方法和我一起工作当npm块安装时,IONIC安装包和ReactNative以及另一个包npm。

你可以改变临时:npm配置集前缀C:\ Users [用户名] \ AppData \ Roaming \ npm \ node_modules2

  • 更改环境变量中的路径设置C:\ Users [用户名] \ AppData \ Roaming \ npm \ node_modules2
  • 运行您的命令以安装您的包。
  • 打开文件资源管理器复制链接C:\ Users [用户名] \ AppData \ Roaming \ npm \ node_modules ok文件yourpackage.CMD创建了另一个文件夹在node_modules中创建了“node_modules2”并包含你的包文件夹。
  • 将包文件CMD复制到父文件夹“npm”
  • 将您的包文件夹复制到父文件夹“node_modules”
  • 现在运行npm config set前缀C:\ Users [username] \ AppData \ Roaming \ npm
  • 更改环境变量中的路径设置C:\ Users [用户名] \ AppData \ Roaming \ npm
  • 现在包使用命令行正常工作
© www.soinside.com 2019 - 2024. All rights reserved.