我正在尝试将React Native集成到我们现有的iOS应用程序中。我松散地跟着this guide。
我松散地说,因为我不想将React Native安装到我的顶级项目文件夹中。我们有一个现有的目录结构,我需要能够从我的顶级应用程序项目,以及我们的一些本机库中引用和使用React Native,所以我想将React Native安装到我们现有的更通用的位置目录结构。这是我正在尝试的当前目录结构:
ios | +-- myapp | | | +-- myapp.xcodeproj | \-- ReactComponent | | | \-- index.ios.js | +-- libinternal | | | \-- libbusinesslogic | | | \-- libbusinesslogic.xcodeproj | +-- libexternal | | | \-- ReactNative | | | \-- node_modules | | | \-- react-native
我希望能够从myapp
和libbusinesslogic
Xcode项目中引用相同的React Native安装。这就是我将React Native安装到更通用的位置的原因:libexternal/ReactNative
。
不幸的是,React Native似乎对这种非标准版本并不友好。安装。现在我想弄清楚如何整合' Bundle React Native代码和图像'构建我的项目步骤。我使用react-native init
创建了一个全新的项目,并将脚本构建步骤从中复制到myapp
项目中。它开头是这样的:
export NODE_BINARY=node
../node_modules/react-native/packager/react-native-xcode.sh
这对我的项目不起作用,因为我在不同的位置安装了React Native,所以我将其更改为:
export NODE_BINARY=node
../libexternal/ReactNative/node_modules/react-native/packager/react-native-xcode.sh
当我构建myapp
时,脚本失败并出现此错误:
未捕获错误错误:NotFoundError:在任何根目录中找不到条目文件index.ios.js:[" / Users / jboehle / Desktop / projects / ios / libexternal / ReactNative"]
似乎没有办法将额外的根传递给react-native-xcode.sh
脚本。
花了一些时间使用Google搜索后,似乎可能有某种方法可以使用自定义rn-cli.config.js
文件执行此操作,但我无法让它工作。
有没有办法让我的现有目录结构工作?
编辑:我还遇到了this issue on Github,这似乎与我提出的问题完全相同。它被标记为已关闭,但我没有看到任何真正解决问题的方法。该票证的原始作者发布了一个修复程序,用于运行具有不同根目录的打包程序,但不具有不同根目录的打包程序脚本。