web-dev-qa-db-ja.com

npm installを使用しようとすると、NPMの「418ティーポットです」エラーを解決するにはどうすればよいですか?

次のコマンドを使用して、企業プロキシを持つサーバーにYeomanとGulpをインストールしようとしています。

npm install -g yo gulp

ただし、このコマンド(または「npm install」コマンド)を実行すると、次のエラーが発生します。

npm ERR!       E418
npm ERR! 418 I'm a teapot: gulp@latest

これはプロキシに関連する問題であるとかなり確信していますが、何がそれを引き起こしているのか正確にはわかりません。

私がやったいくつかのテスト:

  • 認証用のログイン情報とともにプロキシをnpmrcファイルに追加しましたが、正しく入力されたと思われます。ユーザー名またはパスワードの一部を変更すると、エラーがE407に変わります(認証に失敗しました)。

  • 「npm config set strict-ssl false」を実行しましたが、何もしないようです。

  • さまざまなインストールを実行しようとしましたが、「418 I'm a a teapot package @ latest」と表示されます。

13
forev3r

フォーラムとブログを数時間掘り下げた後、解決策はレジストリを「 http://registry.npmjs.org/ 」から「 https:// registry」に変更することでした。 .npmjs.org / "。

一部のプロキシでは、レジストリはアドレスにリダイレクトされますが、httpsなしで接続しようとすると、アドレスにポート443が追加されるようです。

これがこの問題を経験している他の誰にも役立つことを願っています!

28
forev3r

プロジェクトでもこのエラーが発生しましたが、主な理由はプロキシ設定の変更です。だから私はあなたのプロキシ設定を確認することを提案したい...私はこのエラーを解決するために使用したいくつかのコマンド...

npm set strict-ssl false 
npm config set registry https://registry.npmjs.org/

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

17
Sonali more

私のnpmが表示されないエラー418私は再びティーポットです

このようにnpm configを更新する必要があります:

npm set strict-ssl false 
npm config set registry https://registry.npmjs.org/

npm..を使用してパッケージのインストールを再試行してください

5

以下のコマンドを使用して、レジストリをhttp://registry.npmjs.org/からhttps://registry.npmjs.org/に変更します。

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

1
Nagendra Reddy

Npmチームはこの問題についてこの声明を送信しました。「ピーク時、418の応答はトラフィックの0.01%でした。npmには非常に多くのユーザー(1000万人以上)がいるため、500から1000明らかに、バグに噛まれた1人のユーザーでさえ、私たちが望む以上のものですが、私たちの規模からすると、それは大きな問題ではありませんでした。プロキシの背後では、ほとんどの人は影響を受けませんでした。ヘッダー解析のバグに気付いた後、運用チームはすぐに修正を展開しました。」

したがって、同じ問題に直面したときに、プロキシの背後にいる人々が確実に影響を受けます。だから、ここでの解決策は

Proxy- npm get proxyとnpm get https-proxyの両方がnoneに設定されている場合はチェックしてください。

npm set proxy http:// proxyAddr:80 npm set https-proxy https:// proxyAddr:80

その後、再試行してください。

それでも問題が解決しない場合は、npm-のレジストリを確認してください

http://registry.npmjs.org/ thenの場合、npmはレジストリを取得します。

npm config set registry https://registry.npmjs.org/ に変更します(これで問題が解決するはずです、私にとってはうまくいきました)。

0
rajdeepbs29

あなたが企業のファイアウォールの背後にいるとき、この問題が発生します。これを解決するために、私は次の手順に従いました。

npm set strict-ssl false npm config set registry https://registry.npmjs.org/

企業プロキシの背後にいる場合は、次のコマンドも使用できます。npm config set https-proxy http:// IP:PORT /

または、直接.npmrcファイルに移動し、httpではなくhttpsをポイントします。

0
shiv

多くのサイトを訪問し、見つけたすべてのものをテストした後、このソリューションはようやく機能しました。 Windowsを使用している場合、

  1. Windowsボタンをクリックして「run」と入力します
  2. タイプ.npmrcそして、お気に入りのエディターを使用してこのファイルを開きます。
  3. Registry = http://registry.npmjs.org/ をregistry = https://registry.npmjs.org/ に置き換えて保存します。

注:プロキシの問題もある場合は、同じファイルで以下のようにプロキシを設定できます。私の場合、パスワードに特殊記号「@」があります。 npm config set proxyコマンドを使用してプロキシを変更しようとしたとき、これらの特殊文字は他の何かに変換されました:)このファイルで直接プロキシします。

最終的な.npmrcは次のようになります。プロキシに問題がなければ、プロキシ回線を削除できます。また、以下の例のポートをプロキシポートに置き換えることを忘れないでください。

registry=https://registry.npmjs.org/  
proxy=http://username:[email protected]:8080/  
https-proxy=http://username:[email protected]:8080/  
strict-ssl=false
0
Ajay