需要来自 master 分支的 react-native 功能

Posted

技术标签:

【中文标题】需要来自 master 分支的 react-native 功能【英文标题】:Needing react-native features from master branch 【发布时间】:2016-03-04 22:49:54 【问题描述】:

我正在通过 NPM 安装/更新方法基于最新的 0.15.0 版本开发 react-native 应用程序。查看 react-native MapView documentation 似乎它应该支持 MapView 中的“注释”道具和“叠加”道具中的“图像”道具。但是,这些道具在我的 RN 版本中不起作用。

在浏览了 react-native GitHub 中的各个分支后,我发现 MapView 中只有 master 分支具有这些属性(参见 this)。因为我通过 NPM 跟上 RN 的发布。我不清楚如何针对 RN master 分支进行开发。

有什么想法吗?

我能想到的一种方法是在我的 npm 的 node_modules 中对 master 分支进行 git pull 并覆盖 react-native 模块。但是,这似乎很激烈,我还会引入许多需要删除的不需要的部分。

另一种思路是手动将master分支的MapView组件和对应的ios原生文件RCTMap……复制过来,但是这样看起来不优雅又乏味。

在这里寻找更优雅的解决方案。

【问题讨论】:

询问您将收到:***.com/questions/16350673/… 【参考方案1】:

对于那些处于类似位置,但出于某种原因不愿意或无法跟随主分支的人,您可以考虑等待功能。

来自主要贡献者之一(释义):React Native 大约有 2 周的节奏。发布候选 (rc) 在开始循环的某个点从 master 派生。两周后,它被提升为发布,并从当前的 master 状态创建一个新的候选发布。然后重复该循环。您希望使用的 MapView 功能应显示在下一个 rc 中。

【讨论】:

【参考方案2】:

你应该可以在你的 package.json 中指定一个 git 依赖,像这样:

"dependencies": 
  "react-native": "facebook/react-native",
,

npm 将在安装时自动克隆 repo。如果您想固定到特定的提交(强烈推荐),请执行facebook/react-native#f025049b

(请注意,此策略不适用于像 react 本身这样需要在 npm 之前构建步骤的包,但 react-native 应该像这样正常工作。)

【讨论】:

这不适用于单独发布的原生 android 代码:bit.ly/1NnxrGl。它适用于 npm / github repo 中的 JS 和 Obj-C 代码。我们不从源代码构建 Android 代码的原因是这样做的成本相当高,而且快速构建对于开发人员体验非常重要。【参考方案3】:

您可以在本地克隆 react native 的 repo 并将其安装到您的项目中:

> git clone https://github.com/facebook/react-native.git
> cd MyProject
> npm install ../react-native

【讨论】:

以上是关于需要来自 master 分支的 react-native 功能的主要内容,如果未能解决你的问题,请参考以下文章

Azure DevOps 中链式分支的分支策略

Git-如何从master刷新功能分支[重复]

Git 更新分支到 master

将不同的分支推送到 Heroku

不使用 react-native 的 Expo 分支

git 把分支代码合并给master主分支