react-native init产生ESOCKETTIMEDOUT错误

时间:2019-02-22 00:52:48

标签: react-native npm yarnpkg

我使用的是Macbook,当我尝试创建React Native应用时,它会引发ESOCKETTIMEDOUT错误。

我曾尝试清理npm和yarn缓存,但这无济于事。

react-native init AwesomeProject
This will walk you through creating a new React Native project in /Users/gaurang.shah/Documents/personal/code/mobile/AwesomeProject
Using yarn v1.13.0
Installing react-native...
yarn add v1.13.0
info No lockfile found.
[1/4]   Resolving packages...
[2/4]   Fetching packages...
info There appears to be trouble with your network connection. Retrying...
info There appears to be trouble with your network connection. Retrying...
info There appears to be trouble with your network connection. Retrying...
info There appears to be trouble with your network connection. Retrying...
error An unexpected error occurred: "https://registry.yarnpkg.com/lodash/-/lodash-4.17.11.tgz: ESOCKETTIMEDOUT".
info If you think this is a bug, please open a bug report with the information provided in "/Users/gaurang.shah/Documents/personal/code/mobile/AwesomeProject/yarn-error.log".
info Visit https://yarnpkg.com/en/docs/cli/add for documentation about this command.

我可以通过浏览器下载https://registry.yarnpkg.com/lodash/-/lodash-4.17.11.tgz文件,因此不会出现网络问题。

Stacktrace

Yarn version:
  1.13.0

Node version:
  11.10.0

Platform:
  darwin x64

Trace:
  Error: https://registry.yarnpkg.com/lodash/-/lodash-4.17.11.tgz: ESOCKETTIMEDOUT
      at ClientRequest.<anonymous> (/usr/local/Cellar/yarn/1.13.0/libexec/lib/cli.js:130024:19)
      at Object.onceWrapper (events.js:285:13)
      at ClientRequest.emit (events.js:197:13)
      at TLSSocket.emitRequestTimeout (_http_client.js:669:40)
      at Object.onceWrapper (events.js:285:13)
      at TLSSocket.emit (events.js:197:13)
      at TLSSocket.Socket._onTimeout (net.js:447:8)
      at listOnTimeout (timers.js:327:15)
      at processTimers (timers.js:271:5)

npm manifest:
  {"name":"AwesomeProject","version":"0.0.1","private":true,"scripts":{"start":"node node_modules/react-native/local-cli/cli.js start"}}

yarn manifest:
  No manifest

Lockfile:
  No lockfile

1 个答案:

答案 0 :(得分:4)

在速度较慢的网络上检索大软件包时,存在相同的问题。如在此comment上的建议,增加安装软件包的网络超时对我来说很有效。

首先,预先创建您的项目目录,然后在其中创建一个.yarnrc文件,其内容如下:

network-timeout 600000

现在,只需像执行操作一样从项目的父目录中运行react-native init <project_name>命令即可​​。


等效于像这样运行yarn

yarn install --network-timeout 600000