为了最大限度地重复使用代码,我们正在构建一组我们想要在多个移动应用中使用的组件。到目前为止,我已经能够使用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”文件夹。在核心模块文件夹中再次安装所有模块似乎有点矫枉过正。
我的目标是:
答案 0 :(得分:0)
您是否考虑使用私有npm存储库?您可以将所有可重用组件放入私有npm存储库,然后在每个应用程序中加载它们。虽然我不知道这是否可以解决如何共享本机模块的问题。