尝试使用npm install时,如何解决NPM"418我是茶壶"错误?

for*_*v3r 14 proxy node.js npm

我一直在尝试使用以下命令在具有公司代理的服务器上安装Yeoman和Gulp:

npm install -g yo gulp
Run Code Online (Sandbox Code Playgroud)

但是,当我运行此命令(或任何"npm install"命令)时,我会遇到:

npm ERR!       E418
npm ERR! 418 I'm a teapot: gulp@latest
Run Code Online (Sandbox Code Playgroud)

我非常有信心这是一个与代理有关的问题,但我无法弄清楚究竟是什么导致它.

我做过的一些测试:

  • 我将代理添加到我的npmrc文件中,其中包含用于身份验证的登录信息,我相信它已正确输入.如果我更改用户名或密码的任何部分,我的错误将更改为E407(身份验证失败).

  • 我跑了"npm config set strict-ssl false",似乎没有做任何事情.

  • 我尝试运行不同的安装,我仍然只是得到"418我是茶壶 @latest".

for*_*v3r 30

因此,经过几个小时的挖掘论坛和博客后,解决方案是将我的注册表从" http://registry.npmjs.org/ " 更改为" https://registry.npmjs.org/ ".

显然,当在某些代理上时,注册表将重定向到该地址,但如果尝试连接时没有https,则将端口443添加到该地址.

希望这可以帮助其他人遇到这个问题!

  • 是啊谢谢!那也是我的问题。我有一个旧的.npmrc指向http而不是https。 (2认同)
  • 谢谢你让我恢复理智 (2认同)

小智 17

我的项目中也出现了这个错误,主要原因是我们的代理设置发生了变化.所以我想建议检查你的代理设置...我用来解决这个错误的几个命令...

npm set strict-ssl false 
npm config set registry https://registry.npmjs.org/
Run Code Online (Sandbox Code Playgroud)

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


小智 5

感谢您现在回答,我的npm不再显示Err 418我又是茶壶了

您必须像这样更新npm config:

npm set strict-ssl false 
npm config set registry https://registry.npmjs.org/
Run Code Online (Sandbox Code Playgroud)

再次尝试使用安装软件包 npm..