react-native init AwesomeProject 无法连接到 github.com

react-native init AwesomeProject unable to connect to github.com

我按照 facebook 发布的教程进行操作。开始 https://facebook.github.io/react-native/docs/getting-started.html#content

然而,当我 运行 react-native init AwesomeProject 时,我只得到以下错误。我的node.js是v4.1.0,npm是v2.14.3.

不知道是我的环境没问题还是就是连接不上github.com?

npm 错误! git clone --template=/Users/jansenli/.npm/_git-remotes/_templates --mirror git://github.com/facebook/react.git /Users/jansenli/.npm/_git-remotes/git-github-com-facebook-react-git-baa2986b: 致命:无法连接到 github.com:

npm 错误! git clone --template=/Users/jansenli/.npm/_git-remotes/_templates --mirror git://github.com/facebook/react.git /Users/jansenli/.npm/_git-remotes/git-github-com-facebook-react-git-baa2986b: github.com[0: 192.30.252.129]: errno=操作超时

npm 错误!达尔文 14.5.0

npm 错误! argv "/Users/jansenli/.nvm/versions/node/v4.1.0/bin/node" "/Users/jansenli/.nvm/versions/node/v4.1.0/bin/npm" "install" “--保存”"react-native"

npm 错误!节点 v4.1.0

npm 错误! npm v2.14.3

npm 错误!代码 128

npm 错误!命令失败:git clone --template=/Users/jansenli/.npm/_git-remotes/_templates --mirror git://github.com/facebook/react.git /Users/jansenli/.npm/_git-remotes/git-github-com-facebook-react-git-baa2986b

npm 错误!克隆到裸存储库 '/Users/jansenli/.npm/_git-remotes/git-github-com-facebook-react-git-baa2986b'...

npm 错误!致命:无法连接到 github.com:

npm 错误! github.com[0: 192.30.252.129]: errno=操作超时

npm 错误!

npm 错误!

npm 错误!

npm 错误!如果您需要帮助,可以在以下位置报告此错误:

npm 错误! https://github.com/npm/npm/issues

npm 错误!请在任何支持请求中包含以下文件:

npm 错误! /Users/jansenli/AwesomeProject/npm-debug.log

npm install --save react-native失败

首先 - 检查您是否真的可以看到 github 网站。只需转到 https://github.com/facebook/react,您应该会看到 React 项目。如果你能看到,那就已经很好了:).

然而,错误消息表明您在通过 git://github.com/facebook/:react.git 下载存储库时遇到问题。您可以通过 运行:

来验证
git clone git://github.com/facebook/react.git 

它应该挂起,你也应该超时。

如果您无法连接 git:// 并且同时您可以通过 https 连接到 github - 我的猜测是您有防火墙阻止 git 协议通过端口 9418 连接到 github(更多关于 git 协议的信息:https://git-scm.com/book/en/v2/Git-on-the-Server-The-Protocols#The-Git-Protocol)。你会超时,如果你在公司防火墙后面,这是非常标准的行为。

如果是这样的话,那就没几个选择了。首先 - 绕过防火墙 - 比如在家里或其他地方做......如果你不能这样做,那么你可以尝试让 git 总是使用 https:// 而不是 git:// .显然这两个命令将以这种方式配置 git(我没有尝试过,但它应该有效):

git config --global url."https://github.com/".insteadOf git@github.com:
git config --global url."https://".insteadOf git://

可能只有第一个命令就足够了(但我不是 100% 确定它是否足够)。