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

Posted

技术标签:

【中文标题】如何在 React Native 应用程序初始化期间防止与节点相关的错误【英文标题】:How to prevent node related errors during initialize of a React Native app 【发布时间】:2015-07-17 17:13:26 【问题描述】:

我通过 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 并不能解决问题。

我做错了什么?

【问题讨论】:

【参考方案1】:

这是 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。

【讨论】:

感谢您的回答。这绝对是问题所在。不幸的是,在卸载 node010、iojs 和 npm 并仅重新安装 iojs 时,没有可用的 npm。这就是为什么我再次通过 brew 安装它。我猜可能是当前 iojs 版本的问题。无论如何,我切换到 node010 并反应原生 0.8.0-rc 无论如何都可以工作

以上是关于如何在 React Native 应用程序初始化期间防止与节点相关的错误的主要内容,如果未能解决你的问题,请参考以下文章

React Native只需重新初始化iOS或Android Project

如何在 react-native 中重置 ios 库?

第1615期React Native 图表性能优化实践

如何减少 React Native Android 应用程序的启动时间

开源周刊第37期:React Native 简单教程

如何在 react-native 中处理 promise