npm安装错误:rollbackFailedOptional


81

当我尝试npm install新软件包时,它向我显示此错误:

rollbackFailedOptional:动词npm-session 585aaecfe5f9a82

node --version
8.4.0

npm --version
5.3.0

1
我也遇到同样的错误。您对此有什么解决方案吗?
艾尼尔(Anil)

这很可能是由于您公司的防火墙所致。使用非公司的Internet连接或尝试设置公司管理员提供的代理以访问NPM回购服务器。
Prometheus

Answers:


82
    # first this
    > npm config rm proxy
    > npm config rm https-proxy

    # then this
    > npm config set registry https://registry.npmjs.org/

解决了我的问题。

再次:确保检查互联网是否正确连接。


3
解释这些信息,对我也不起作用。
Jorgesys '19

2
对我来说,需要使用https://registry.npmjs.org/(请注意https)
Walty Yeung

您保存了我的一天
Brilian Aringga

不幸的是,这并没有解决我的问题。我只是在一个简单的家庭网络上,没有代理,很长时间以来我一直在打开和关闭此错误,有时当我使用VS Code时,我可以打开一个cmd提示符(非VS Code),并且可以正常工作,但是在IDE。我刚刚卸载了NodeJS,删除了AppData中的所有npm文件夹,然后重新安装,但仍然出现此错误。
路加·奥布莱恩

55

试试这个

npm config rm proxy
npm config rm https-proxy

3
我也为我工作,但是您知道此命令的作用以及为什么起作用吗?我想知道是否需要安装某些东西。谢谢!
aztec242

1
这有帮助的原因是,您的注册表设置以某种方式设置为默认值以外的其他值,并且这些命令删除了这些配置设置,允许它们还原为默认值。就我而言,我的工作使用了自定义注册表,该注册表最近被放置在防火墙之后。在家里处理个人项目,因此我专门在此目录中覆盖了该项目的npm设置。有关更多详细信息,请参见下面的@lambda的答案。
安迪·格罗夫

工作正常。尝试了rollBackFailed ..之后再次出现,但几秒钟后消失了。我已经安装了nativescript easilty。谢谢
阿什拉富德(伊斯兰教)博士

2
直到我也参加npm config set registry http://registry.npmjs.org/
戴维斯

对我来说,就像@davis一样
kayleeFrye_onDeck

20

就我而言,我必须.npmrc直接编辑并手动添加代理设置。

proxy=http://yourorganizationproxy.com:8080
https-proxy=http://yourorganizationproxy.com:8080

希望这对某人有帮助。


非常感谢!以我的情况(Kubuntu),设置以某种方式添加到用户 .npmrc文件下~/.npmrc
a1300

我很伤心,当npm无法访问注册表时,其行为是将其挂起,并显示一条神秘的状态消息,并且没有任何迹象表明它正在尝试访问远程主机。操守良好的命令行工具应告知用户何时进行互联网操作
Matt Montag

在哪里可以找到代理设置?@miqrc
阿希拉

18

原因可能是您当前的NPM注册中心。尝试检查.npmrc文件。这些可以在各个位置:

  • 每个项目的配置文件(/path/to/my/project/.npmrc
  • 每个用户的配置文件(~/.npmrc
  • 全局配置文件($PREFIX/etc/npmrc
  • npm内置配置文件(/path/to/npm/npmrc

在这些里面可能有类似的东西

registry=https://mycustomregistry.example.org

优先于默认值(http://registry.npmjs.org/)。您可以删除文件中的这一行,或使用默认注册表,如下所示:

npm <command> --registry http://registry.npmjs.org/

2
npm config set registry http://registry.npmjs.org/配置代理服务器设置后,运行对我有效
rainversion_3 '19

15

npm无法访问npm注册表。检查npm代理配置

我在Windows Server 2008 R2上遇到了完全相同的问题。我最初怀疑Internet Explorer的增强安全性配置,但没有成功将其关闭后,问题出在,原因是npm未配置为使用我的公司代理连接到Internet。

事实证明,npm不会通过Internet选项>连接选项卡>将服务器设置为“自动检测设置”的LAN设置有效地使用代理设置。设置为自动检测设置并不能保证确实使用了代理,这仅意味着Windows在http:// wpad上找到特殊的“ wpad.dat”文件时,它将自动为Internet Explorer配置代理设置。 .com] /wpad.dat

通过在Web浏览器中键入以下内容,可以测试组织中是否正在使用wpad.dat文件。

http://wpad.[yourcompany.domain]/wpad.dat

如果没有可用的文件,则可能您未使用组织范围的代理。如果确实返回浏览器,则...

在此文件的底部,您应该看到一行显示

PROXY <host:port>;

如果您有多个代理,则可能会重复执行。需要主机和端口才能告诉npm使用代理设置,如下所示:

npm config set proxy http://[host]:[port]

npm config set https-proxy http://[host]:[port]

例如,如果您的代理位于端口8080上的my.proxy.com,则npm命令将为:

npm config set proxy http://my.proxy.com:8080
npm config set https-proxy http://my.proxy.com:8080

当我告诉npm使用哪个代理开始工作后,我便可以运行安装命令而不会出现问题。

感谢以下文章,以帮助您找到wpad文件。


6

我尝试了以下选项来解决此问题,并且它起作用了。

  1. 卸载Node.js版本8。
  2. 安装Node.js版本6.11.4
  3. 使用注册表选项和命令来安装任何软件包。

例如,我使用以下命令来安装express。

npm install express --registry http://registry.npmjs.org/

要么

npm install express -g --registry http://registry.npmjs.org/

如果要在任何特定文件夹中本地安装,请使用以下命令。下面的命令将在path上安装express C:\Sample\Example1

C:\Sample1\Example1> npm install /Sample/Example1 express --registry http://registry.npmjs.org/

注意:如果要在本地安装在特定位置,请先使用command转到该目录,然后在命令上方运行。如果您不在该目录中,并且仅在命令中提供路径,则该路径将不起作用。

如果package.json丢失错误,请在本地安装软件包之前运行以下命令

C:\Sample\Example1> npm init

上面的命令将创建package.json文件。无需提供任何数据。只需按Enter。

注意:如果您位于防火墙后面,则可能需要设置代理。


3

嗨,我也是新手,我也遇到了很多问题,在找到解决方案后也遇到了这个问题:只需在命令提示符或终端中运行:

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

这样可以解决您的问题。参考链接:http : //blog.csdn.net/zhalcie2011/article/details/78726679


2
欢迎使用指向解决方案的链接,但是请确保没有该链接的情况下您的回答是有用的:在该链接周围添加上下文,以便您的其他用户可以了解它的含义和含义,然后引用您所使用页面中最相关的部分如果目标页面不可用,请重新链接。只是链接的答案可能会被删除。
GrumpyCrouton

3

确保您可以访问在npm中配置的公司存储库。检查您的VPN连接。

否则将其重置回默认存储库,如下所示。

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

祝好运!!


3

以下命令解决了我的问题:

npm config set proxy http://yourproxyurl.com:8080  (you need to enter your or your company proxy URL and 8080 should be replaced by your proxy port)

npm config set https-proxy http://yourproxyurl.com:8080

1

如果您有权访问注册表,但仍然发生错误,则上述任何操作均无效。我注意到,此问题仅适用于本地项目的安装(即,如果使用-g进行全局安装,则一切工作正常)。

是什么为我解决了这个问题:只需从项目的package.json文件中删除与要安装的软件包有关的条目即可。之后,对npm的下一个调用将起作用并成功安装软件包。


1

我用PhpStorm创建一个React应用程序具有相同的效果。最后,它只是说done。在终端中运行相同的命令给了我详细的错误。我创建的项目文件夹已命名react,似乎不行。

确保您的项目文件夹未命名react


0

试试这个:

删除文件夹中的所有文件:%APPDATA%\ npm-cache \ _locks


0

对于Windows:再次运行安装程序,然后选择“修复”安装

为我工作



0

我遇到过同样的问题。但是,通过从公司内部网络切换到访客网络,它可以正常运行。


0

我设置了两个系统环境变量-

  1. HTTP_PROXY = <_proxy_url_>
  2. HTTPS_PROXY = <_proxy_url_>

这实际上对我有用。


0

在极少数情况下,请检查是否可以使用常规npm命令来构建项目。我遇到了一个配置为可以使用的工具bower,因此bower install <github_url>可以npm install <github_url>在所有平台上给出该无用的神秘错误消息的同时工作...


0

在安装Angular命令行工具(CLI)时,如果您遇到“回滚错误”,则可能是由于您的网络与您正在使用的客户端网络或公司网络连接而导致的。

因此,请尝试在您的公共网络(或您的手机的热点网络)中安装CLI,然后您肯定会安装CLI。


0

解决方案:npm config的'proxy'和'https-proxy'键的默认值为NULL。经过更多的研发之后,我尝试将代理设置值设置为上述键(此解决方案适用于我的情况)。

另外,需要在IE浏览器的Internet设置>>设置>> LAN设置中应用相同的代理设置。

结论:在公司/某些环境中,代理是某种强制性设置,否则npm安装将无法进行。

在GitHub上发布:https : //github.com/SharePoint/sp-dev-docs/issues/3266

您可以参考博客以获取详细信息 https://blogs2share.blogspot.com/2019/01/spfx-environment-setup-error.html


0

您可以通过查看您的网络是否有任何代理(禁止下载过程)来解决此问题。我公司的网络启用了防火墙,这导致了我的问题。因此,我不得不切换到一个不安全的网络(可能是您的移动网络中的热点),这对我很有用。


0

我的是由于迈克菲防火墙。它设置为“询问”模式,因此应该弹出提示询问是否可以连接互联网,但是没有!进入McAfee并(暂时!)禁用防火墙使我得以安装。


0

我已经按照上述方法设置了代理,并且一直有效到今天。事实证明,现在我需要在代理地址“ http:// {proxyURL}:{proxyPort}”前面加上“ http://”。然后终于奏效了。


0

在解决此问题之前,已经进行了一段时间的努力。
我使用的是高塞拉利昂(10.13.6)
卸载并重新安装的节点和NVM多次-使用installer.pkgHomeBrew,然后使用命令行。IMO,命令行效果最好。

我按照以下步骤操作:
1.运行npm config ls -l
2.检查值是否globalconfig$<installpath>/.nvm/versions/node/v12.16.3/etc/npmrc但是,当我尝试在终端中到达此路径时,它给了我,No such file or directory
所以我
3.创建了文件夹etc,创建了npmrc文件并在其中添加了这一行。

registry = "https://registry.npmjs.org/"


我的“~/.npmrc$HOME

那时
4.”中没有文件。我重新运行了npm install命令。


请注意,这仍然引发了rollbackFailedOptional: verb npm-session错误,但是这次完成了,尽管存在另一个错误。您可以尝试这些步骤,看看是否可行。

对于那些好奇的人,它抛出了一个Response timeout while trying to fetch https://registry.npmjs.org/<package> (over 30000ms)错误,所以我将其添加timeout = "60000"/etc/npmrc文件中(在另一个Stackoverflow线程中找到),然后重试。这对我有用。

希望这可以帮助!


0

如果问题仍然存在,请尝试在此处回答的所有命令来解决问题https://stackoverflow.com/a/54173142/12142401请执行以下步骤

完全卸载nodejs签出此答案以完全卸载nodejs https://stackoverflow.com/a/20711410/12142401

从他们的网站上下载更新的nodejs设置将其安装在任何驱动器中,而不是以前安装的驱动器中,例如,如果您安装在C驱动器中,然后安装在D,S,G驱动器中,请执行npm命令,它将完全正常运行



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.