我一直在尝试使用以下命令在具有公司代理的服务器上安装Yeoman和Gulp:
npm install -g yo gulp
然而,当我运行这个命令(或任何“npm安装”命令)时,我会遇到:
npm ERR! E418
npm ERR! 418 I'm a teapot: gulp@latest
我很有信心,这是一个问题有关的代理,但我不能找出究竟是什么原因。
我做过一些测试:
- 我将代理服务器添加到我的npmrc文件中,并提供了登录信息以进行身份验证,我相信它输入正确。如果我更改用户名或密码的任何部分,错误将变为E407(身份验证失败)。
- 我运行了“npm config set strict-ssl false”,但似乎什么也没做。
- 我尝试运行不同的安装,我仍然只是得到“418我是一个茶壶 * 包 *@最新”。
7条答案
按热度按时间qyzbxkaa1#
因此,在论坛和博客中又挖掘了几个小时后,解决方案是将我的注册表从“X1 E0 F1 X“改为“X1 E1 F1 X“。
显然,当在一些代理上时,注册表将重定向到该地址,但如果试图在没有https的情况下连接,则将端口443添加到该地址。
希望这对其他遇到这个问题的人有帮助!
tvokkenx2#
我也得到了这个错误在我的项目和主要原因是改变我们的代理设置。所以我想建议检查您的代理设置...一些命令,我用来解决这个错误...
检查= https://registry.npmjs.org/
wswtfjt73#
谢谢你现在回答我的npm没有显示错误418我又是一个茶壶。
必须按如下方式更新npm配置:
使用
npm..
重试安装包6uxekuva4#
在访问了许多网站并测试了我发现的一切之后,这个解决方案终于为我工作了。如果你使用的是Windows,
1.点击windows按钮并键入“运行”
1.键入
.npmrc
并使用您喜欢的编辑器打开此文件。1.将注册表= http://registry.npmjs.org/替换为注册表= https://registry.npmjs.org/并保存。
注意:如果您有任何代理问题太..您可以设置您的代理像下面在同一个文件中。在我的情况下,我有一个特殊符号“@"在我的密码。当我尝试改变代理使用npm配置设置代理命令这些特殊字符被转换为其他东西:)所以你可以消除所有这些头痛,如果你设置你的代理在这个文件中直接。
你的最终
.npmrc
应该看起来像下面。你可以删除代理线路,如果你没有任何问题的代理,不要忘记取代端口在下面的例子与您的代理端口。2admgd595#
使用以下命令将注册表从
http://registry.npmjs.org/
更改为https://registry.npmjs.org/
:npm config set registry https://registry.npmjs.org/
nwwlzxa76#
NPM团队针对该问题发送了以下声明-“在高峰期,418个响应占流量的0.01%。NPM拥有大量用户(超过10 M),所以在事件发生的时间内,有500到1000个实际用户受到影响。显然,即使一个用户被bug咬了,也比我们希望的要多,但相对于我们的规模而言,这并不是一个大问题。触发漏洞所需的特定代理配置相对较少,因此即使在使用代理的用户中,大多数人也没有受到影响。一旦我们收到报头解析中的漏洞警报,运营团队迅速部署了修复程序。”
所以,代理背后的人肯定会受到影响,因为我面临着同样的问题。所以,解决办法是-
检查代理- npm get proxy和npm get https-proxy如果两者都设置为none,请将其设置为-
npm设置代理http://proxyAddr:8000 npm设置https代理https://proxyAddr:8000
然后重试。
如果问题仍然存在,请检查注册表中的npm-
如果http://registry.npmjs.org/则NPM获得注册表,
将其更改为npm配置集注册表https://registry.npmjs.org/(这应该可以解决问题,对我来说,它起作用了)。
axr492tv7#
当你在公司防火墙后面时,你会遇到这个问题,为了解决这个问题,我遵循了以下步骤:
如果您使用公司代理,则还可以使用以下命令:第一个月
或者直接转到.npmrc文件并指向https而不是http。