React Native - 共享并重新使用组件

时间:2017-10-18 02:55:43

标签: android reactjs gradle react-native

为了最大限度地重复使用代码,我们正在构建一组我们想要在多个移动应用中使用的组件。到目前为止,我已经能够使用git存储库作为我的package.json中的依赖项。

我在主/核组件模块中使用多个本机模块作为依赖项,如下所示:

include ':react-native-navigation'
project(':react-native-navigation').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-navigation/android/app')
include ':react-native-open-settings'
project(':react-native-open-settings').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-open-settings/android')
include ':react-native-localization'
project(':react-native-localization').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-localization/android')
include ':react-native-maps'
project(':react-native-maps').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-maps/lib/android')
include ':react-native-vector-icons'
project(':react-native-vector-icons').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-vector-icons/android')

现在,如果我想在我的核心应用程序中添加一个新的本机模块,这需要我的每个子应用程序都需要更新build.gradle和settings.gradle,这样新模块也会被编译并且加入到项目中。

我正在设置我的settings.gradle子应用程序:

include ':core'
project(':core').projectDir = new File(rootProject.projectDir, '../node_modules/core/android/app')

这似乎是第一步,但这使得核心应用程序编译失败,因为缺少“node_modules”文件夹。在核心模块文件夹中再次安装所有模块似乎有点矫枉过正。

我的目标是:

  1. 拥有包含JS和本机组件的核心模块
  2. 创建将此核心作为依赖项的子应用程序
  3. 更新核心版本,无需手动更新所有子应用,最终删除导致构建时出错的手动步骤。

1 个答案:

答案 0 :(得分:0)

您是否考虑使用私有npm存储库?您可以将所有可重用组件放入私有npm存储库,然后在每个应用程序中加载它们。虽然我不知道这是否可以解决如何共享本机模块的问题。