如何在 React Native 应用程序初始化期间防止与节点相关的错误

How to prevent node related errors during initialize of a React Native app

我通过 brew 删除了我的节点安装,并按照 React getting started page 上的步骤安装 iojs。在我也通过 brew 更新 npm 之前。 React Native 安装正确,但一旦我尝试通过

初始化应用程序
react-native init my_app

我得到以下跟踪:

gyp WARN install got an error, rolling back install
gyp ERR! configure error 
gyp ERR! stack Error: 404 response dowloading http://nodejs.org/dist/v2.3.4/node-v2.3.4.tar.gz
gyp ERR! stack     at Request.<anonymous> (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/install.js:251:14)
gyp ERR! stack     at emitOne (events.js:82:20)
gyp ERR! stack     at Request.emit (events.js:169:7)
gyp ERR! stack     at Request.onRequestResponse (/usr/local/lib/node_modules/npm/node_modules/request/request.js:985:10)
gyp ERR! stack     at emitOne (events.js:77:13)
gyp ERR! stack     at ClientRequest.emit (events.js:169:7)
gyp ERR! stack     at HTTPParser.parserOnIncomingClient (_http_client.js:415:21)
gyp ERR! stack     at HTTPParser.parserOnHeadersComplete (_http_common.js:88:23)
gyp ERR! stack     at Socket.socketOnData (_http_client.js:305:20)
gyp ERR! stack     at emitOne (events.js:77:13)
gyp ERR! System Darwin 14.3.0
gyp ERR! command "/usr/local/Cellar/iojs/2.3.4/bin/iojs" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /Users/jason/projects/dos/node_modules/react-native/node_modules/babel/node_modules/chokidar/node_modules/fsevents
gyp ERR! node -v v2.3.4
gyp ERR! node-gyp -v v2.0.1
gyp ERR! not ok 

重新安装 node-gyp 没有解决问题。

我做错了什么?

这是 io.js 和 node-gyp 的问题。在您的日志中查看这一行:

Error: 404 response dowloading http://nodejs.org/dist/v2.3.4/node-v2.3.4.tar.gz

node-gyp 尝试从 node.js 站点下载 v2.3.4 发行版,但显然不存在,因为它是 io.js。为了解决这个问题 io.js 发布了补丁 npm。不幸的是,如果您通过 npm install -g npm 更新 npm,它将再次被破坏。

您可以尝试 npm uninstall -g npm,但它似乎完全清除了 npm,所以您必须重新安装 io.js。