【发布时间】:2019-03-17 12:10:41
【问题描述】:
我正在尝试了解 React-Native 的开发过程,所以我找到了有关 Metro 的信息,然后我阅读/观看了这个Metro 视频):
Metro 是 React Native 的开发平台,它通过 暴露 HTTP 服务器 以便客户端,在这种情况下,模拟器可以 与它通信,它还公开了一个 Websocket 服务器,因此它可以 将更新推送到客户端。
文档讨论了运行在 8081 端口上的“React Native Packager”(现在称为 Metro,根据视频),例如,当我们键入 react-native run-android 时启动的 HTTP 服务器是?
关于 Websocket 我还需要read more。
文档说我们在两种环境中运行我们的 JavaScript 代码,这取决于我们是否处于调试模式,我理解这一点。但是这个article让我有点困惑,说:
没有。 4 你的代码不能在 Node.JS 上运行:你拥有的 JavaScript 运行时是 ether JavaScriptCore(非调试)或 V8(调试)。甚至 虽然你可以使用 NPM 并且一个节点服务器在后台运行, 您的代码实际上并未在 Node.JS 上运行。所以你将无法 使用 Node.JS 包。一个典型的例子是 jsonwebtoken,它 使用 NodeJS 的加密模块。
然后,我读到了以下内容:
React Native 使用 Node.js(一个 JavaScript 运行时)来构建您的 JavaScript 代码。
Node.js 是一种服务器端 JavaScript 运行时环境。反应 Native 附带一些为 Node.js 编写的工具。
Node.js 是基于 Chrome 的 JavaScript 构建的开源平台 运行;它提供了一种轻松构建快速、可扩展的方法 程式。 Node.js 允许您在终端中运行 JavaScript,并帮助 创建模块。
在这个article 中,它说:
从 nodejs.org 下载 node.js。这个 JavaScript 运行时为您提供 访问 npm,这是一个由 node.js 创建的便捷工具 可以用来管理开源包的项目。确保 下载最新的 LTS(长期支持)版本 节点.js。 此下载还包括一个开发服务器 称为 Metro bundler,它在调试时提供实时更新。
所以:
- Node.js在RN中的作用是只访问npm和管理包? Metro 是否包含在 Node.js 中?我错过/混淆了什么吗?谢谢。
【问题讨论】: