安装任何软件包时npm rollbackFailedOptional错误

时间:2018-05-13 11:16:11

标签: node.js npm

安装任何npm软件包时遇到问题。这是我的错误:

rollbackFailedOptional: verb npm-session xxxxxxxxxxx

解决这个问题我做了一些事情,但我仍然得到同样的错误。

我将registry=http://registry.npmjs.org/放在我的用户文件夹中的npmrc文件中,并运行以下命令:

npm config rm proxy
npm config rm https-proxy

我尝试解决节点8.11.1和节点10.1.0中的问题,我的npm版本为5.6.0

为什么会出现此问题以及如何解决此问题?

更新 npm配置列表:

; cli configs
metrics-registry = "http://registry.npmjs.org/"
scope = ""
user-agent = "npm/5.6.0 node/v8.11.1 win32 x64"

; userconfig C:\Users\me\.npmrc
https-proxy = "https://username:password@proxy.company.com:6050/"
proxy = "http://username:password@proxy.company.com:6050/"
registry = "http://registry.npmjs.org/"

; builtin config undefined
prefix = "C:\\Users\\me\\AppData\\Roaming\\npm"

; node bin location = C:\Program Files\nodejs\node.exe
; cwd = C:\Users\me
; HOME = C:\Users\me
; "npm config ls -l" to show all defaults.

9 个答案:

答案 0 :(得分:5)

您可以尝试输入此内容然后重新运行:

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

答案 1 :(得分:2)

我已尝试在各种论坛上发布的几乎所有方法,如stackoverflow,github-issues等。但似乎没有任何效果。 这是我执行的命令,我鼓励你尝试,因为它适用于很多人(但不是我):

  • npm config rm proxy
  • npm config rm https-proxy
  • npm config set https-proxy https://username:password@proxy.company.com:6050
  • npm config set proxy http://username:password@proxy.company.com:6050
  • npm config set registry http://registry.npmjs.org/

然后在尝试安装软件包npm install -g express时 - 它失败了。

但是,当我尝试运行npm install npm@latest -g时,奇迹般执行并安装正常! 然后再次运行npm install -g express也完美无缺。

TL; DR :将npm更新到最新版本解决了问题(目前为6.0.1)

答案 2 :(得分:1)

我正在公司代理后面安装npm软件包。以下步骤为我解决了这个问题-

  1. 删除http和https代理-npm config rm代理和npm config rm https-proxy
  2. 设置注册表- npm配置设置注册表http://registry.npmjs.org/
  3. 设置http和https代理- npm config设置代理yourCorporateProxyAddress:port npm配置设置https-proxy yourCorporateProxyAddress:port
  4. 安装软件包- npm install packageName

答案 3 :(得分:0)

我通过设置config的proxy属性解决了这个问题。

您可能会遇到此问题的最可能的原因是您是否在代理之后。

您可以按照以下步骤解决问题

类型:

npm config get proxy

如果为空。这意味着未设置代理。

转到Internet Explorer->工具-> Internet选项-> LAN设置 在这里,您可以在代理服务器下找到您的代理地址和端口。如果您有用户名和密码,请执行以下操作

npm config set proxy http://your-username:your-password@Proxy-address:port-number

此后,您可以使用npm install。

答案 4 :(得分:0)

我在用户命令提示符中遇到了相同的错误,然后在PowerShell中以管理员身份尝试了并且成功。

以管理员身份在Windows PowerShell中运行以下命令:

npm config set https-proxy https://username:password@proxy.company.com:6050

npm config set proxy http://username:password@proxy.company.com:6050

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

答案 5 :(得分:0)

我遇到了同样的问题!

重新安装最新的 32 位 nodejs 对我有用。

请注意,我的网络上没有任何代理。有时,当我遇到这个问题时,我会重新连接到我的 wifi,有时也能正常工作。

答案 6 :(得分:0)

我在尝试从 Github 安装时遇到了同样的问题。问题是因为 package.json 中的脚本及其钩子使用不当。

答案 7 :(得分:0)

我在使用公司机器时通过将 npm 指向正确的代理解决了这个相同的问题。 无需管理员!!!

这是我的步骤:

  1. 按照以下步骤获取正确的代理here!将代理地址复制/粘贴到记事本中。在下一步中,您将使用相同的代理来设置“代理”和“代理-https”参数。

  2. 通过将下面的 替换为上一步中获得的代理地址,在命令窗口中执行以下 2 个命令:

    • npm 配置设置代理 http://
    • npm 配置集 https-proxy http://

注意:我根据“http://@”模板省略了“username”和“password”字段source 应该可以正常工作 10 次中的 9 次,并且非常适合我。

  1. 从命令行导航到您的项目文件夹并执行“npm install ”。安装应该成功。

答案 8 :(得分:0)

我在尝试安装任何 npm 包时遇到了同样的问题。 通过添加一些代理配置解决

转到“用户”->“您的用户”-> 使用文本编辑器打开 .npmrc -> 添加这两行

https-proxy=http://username:password@proxyUrl:port/
proxy=http://username:password@proxyUrl:port

修改用户名和密码,设置您的用户信息。 根据需要修改proxyUrl和端口

这对我有用!