npm安装挂起


79

这是我的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
PhilippClaßen13年

31
尝试npm install --verbose看看是否能找到任何东西。
Dogbert

不,我得到一些输出...
2013年

输出:npm WARN package.json my-example-app.1.0找不到README> md文件!
user1090227 2013年

Answers:


123

我有同样的问题。原因-配置了错误的代理,并且由于该npm无法下载软件包。

因此,最好的选择是查看

$ npm install --verbose

并找出问题所在。如果您从未配置代理,则可能的原因是

  • 非常过时的npm版本。
  • 您的互联网连接出现问题。
  • 权限不足以使npm修改文件。

9
npm config set loglevel info然后npm i再次运行
gcb '16

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

我进行了多次迭代npm install --verbose,删除了挂断前显示的最新日志路径中的文件。最终安装结束。
Zon

这为我解决了。我在OS X上安装了webpack,它在安装过程中挂起。我给了它时间,然后终于杀死了它。我运行了npm install --versbose(遵循您的建议),然后重新运行了webpack安装。一切都很好!
jamesnotjim

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 2013年

2
我不知道这是https还是进度栏,但是同时关闭两者都完成了工作!谢谢!
M'sieur Toph'17年

5
通过http下载代码然后运行它真的是一个好主意吗?代码可能已更改。
标记

关闭https可为我解决所有问题。将节点升级到最新版本后,它开始在安装时随机挂起。现在效果很好。不幸的是,切换回http可以解决此问题,但至少现在可以了。
Michael Lea Crawford


7

我在公司代理后面,所以我通常使用中间代理来启用NTLM身份验证。

使用CNTLM代理时,npm install挂起了问题。有了NTLM-APS(类似的代理),挂掉了。


谢谢,我遇到了同样的问题,没有去任何地方。这是CNTLM第一次对我不起作用!
dcendents

我也转而使用ntlm-aps,并且看到了我npm installmeteor npm install命令的改进。
亚伦C


2

如果它对其他人有用,以下对我有用:

在我的机器上,尽管正确设置了npm proxy,但它npm install会永远等待着像 sill extract这样的操作。重试npm install一次又一次地在同一包上等待。

等待很长的超时后,npm install打印一条错误消息,暗示git正在尝试获取某些内容。

使用以下命令配置git proxy后,该问题消失了:

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

请注意https中的http.proxy否则该配置不会生效。代理服务器设置(http / https /端口)可能因用户而异;因此,值得花一些时间尝试npmgit代理服务器设置。


不幸的是,有大量的问题可能导致此。您不需要的代理设置,npm项目发布的版本过多或存在其他一些连接问题。就我而言,我通过重新启动解决了这些问题之一。我知道这是一个愚蠢的解决方案,但是如果您要拔头发而还没有尝试过,我建议您这样做。我正在运行Mac Os Mojave,这不是我第一次遇到必须重新启动的连接问题。显然,这与SSL有关。
HotFudgeSunday

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

    好的文件yourpackage.CMD创建了另一个文件夹在node_modules中创建了“ node_modules2”并包含您的包文件夹。

  • 将软件包文件CMD复制到父文件夹“ npm”

  • 将您的包文件夹复制到父文件夹“ node_modules”

  • 现在运行:

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

  • 更改环境变量中的路径。组:

    C:\ Users [用户名] \ AppData \ Roaming \ npm

现在,该程序包可以在命令行上正常工作。


1

我只是关闭Windows防火墙,它对我有用。您也可以尝试不同版本的npm。


1

当ssh密钥受密码保护时,运行ssh-add。npm可能挂在要求您输入密码的地方。




0

我不确定您的问题是否是由与我相同的原因引起的,但是我也遇到了挂起的“ npm install”并能够修复它。

就我而言,我想在项目中本地安装打字稿:

npm i typescript --save-dev

由于某种原因,这与我在全球安装的打字稿冲突,并且外壳只是永久挂起,而不是完成或出错。

我首先通过使用-g global标志删除全局安装的打字稿来修复它:

npm uninstall typescript -g

完成此操作后,第一个命令起作用了!👍


0

检查环境变量中的http和https

现有条目可能会引起一些问题。尝试删除这些条目。

再次运行“ npm install”。



0

检查.npmrc文件中的registry条目(该条目标识充当程序包缓存的服务器。)

对我来说,它npm install会挂在中间,这是因为.npmrc文件中列出了旧的/无响应的服务器。删除行或将其注释掉:

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

(和/或检查您的IT /项目负责人为何不起作用;)


0

安装nvm(节点版本管理器)并将节点版本从14降级到12解决了我的问题


-32

*尝试做sudo npm install

*如果您使用的是github,则可能是您没有权限,需要生成一个公共SSH密钥并将其添加到您的设置帐户中:(https://help.github.com/articles/generating-ssh-键/


3
优良作法是尽可能避免sudo,尤其是对于特定于项目(而非系统范围)的操作。
Ilia Kondrashov'2

同意,但在使用LAMP堆栈时的一个好习惯是将Web应用程序文件放在/ var / www目录中。因此,如果您不向这些文件夹授予用户特权,则需要使用sudo
Joaquin Diaz
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.