npm挂在postinstall / unlock上

时间:2015-03-11 12:07:42

标签: linux node.js npm virtualization

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

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

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压缩文件检入来解决了这个问题

8 个答案:

答案 0 :(得分:3)

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

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

  1. 运行sudo npm install -g npm命令。如果要安装特定版本,可以在命令末尾运行追加它:sudo npm install -g npm@2.1.3
  2. 或者您可以使用these instructions添加NodeSource存储库并运行常规sudo apt-get update

答案 1 :(得分:1)

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

找到npm-cache文件夹
<your-drive>\Users\<your-name>\AppData\Roaming\npm-cache

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

您可以使用命令

重新安装npm
npm i npm -g

答案 2 :(得分:0)

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

答案 3 :(得分: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/)修复了问题。

答案 4 :(得分:0)

我遇到了同样的问题,就跑了

npm cache clean

它有效!

答案 5 :(得分:0)

在Windows中也有同样的问题。解决方法是在安装节点和npm之后重新启动,然后以管理员身份运行命令提示符。

答案 6 :(得分:0)

=>此方法与我配合使用当IONIC安装和ReactNative安装软件包中的npm块以及另一个软件包npm时。

您可以临时更改:   npm config设置前缀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设置前缀C:\ Users [用户名] \ AppData \ Roaming \ npm

  • 更改环境变量集C中的路径:\ Users [用户名] \ AppData \ Roaming \ npm

  • 现在程序包可与命令行正常使用

答案 7 :(得分:0)

在Windows上,请确保您使用的是本地CMD(而不是VSCODE或任何IDE)。另外,尝试增加节点的最大内存限制:

set NODE_OPTIONS=--max_old_space_size=8096