0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

npmコマンドやnpxコマンドでFetchError(socket hang up)が発生した

Last updated at Posted at 2021-12-02

Reactの開発環境を作成しようと思ってnpx create-react-app react-sampleとコマンド入力したところ、エラー(FetchError reason: socket hang up)が発生しました。

また、他にもnpm install -g npm@[バージョン]等を実行した時にも同様のエラーが発生しました。

結局大した話ではなかったのですが、一応解決方法を残しておきます。

実際に発生したエラー

66 verbose stack FetchError: request to https://registry.npmjs.org/psl/-/psl-1.8.0.tgz failed, reason: socket hang up
66 verbose stack     at ClientRequest.<anonymous> (C:\Program Files\nodejs\node_modules\npm\node_modules\minipass-fetch\lib\index.js:110:14)
66 verbose stack     at ClientRequest.emit (node:events:390:28)
66 verbose stack     at TLSSocket.socketOnEnd (node:_http_client:471:9)
66 verbose stack     at TLSSocket.emit (node:events:402:35)
66 verbose stack     at endReadableNT (node:internal/streams/readable:1343:12)
66 verbose stack     at processTicksAndRejections (node:internal/process/task_queues:83:21)
~~~中略~~~
74 error network request to https://registry.npmjs.org/psl/-/psl-1.8.0.tgz failed, reason: socket hang up
75 error network This is a problem related to network connectivity.
75 error network In most cases you are behind a proxy or have bad network settings.
75 error network
75 error network If you are behind a proxy, please make sure that the
75 error network 'proxy' config is set properly.  See: 'npm help config'

エラーの原因

ネットワークが原因でファイルのフェッチに失敗しているのは分かるのですが、別にプロキシ環境で実行しているわけでもないし、ネットワークが不調というわけでもない。なんで???

と思って上記エラーの数行上を見てみたら、こんなことが書いてありました。

57 silly audit error Beginning October 4, 2021, all connections to npm websites and the npm registry - including for package installation - must use HTTPS and TLS 1.2 or higher.
57 silly audit error
57 silly audit error For more information see this blog post: https://github.blog/2021-08-23-npm-registry-deprecating-tls-1-0-tls-1-1/

要するに2021年10月4日以降はレジストリサイトに接続するのに「HTTPS and TLS 1.2 or higher」を絶対使ってね☆ということでした。

現状の設定がどうなっているかはnpm config listで確認できました。結果、httpsではなくhttpを使用していることが判明しました。

D:\dev>npm config list
~~~中略~~~
http-proxy = null
https-proxy = null
msvs_version = "2015"
proxy = null
python = "python2.7"
registry = "http://registry.npmjs.org/"   ←ここ
strict-ssl = false

そして私がコマンドを実行したのは2021年12月2日。だからエラーになったということみたいです。

解決方法

以下のコマンドを実行してレジストリにアクセスする際にHTTPSを使うように変更しました。

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

その後npx create-react-app react-sampleを実行したところ今度は成功しました。

終わり。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?