2017-10-18 43 views
1

爲了最大限度地利用代碼,我們正在構建一組我們想要在多個移動應用程序中使用的組件。到目前爲止,我已經能夠在我的package.json中使用git存儲庫作爲依賴項。React Native - 共享並重新使用組件

我使用多個本機模塊作爲我的主/核心部件模塊的依賴關係,像這樣:

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. 更新核心版本,而無需手動更新孩子的應用所有兒童應用程序,最終刪除手動步驟,導致在構建時出錯。

回答

0

您是否考慮過使用私有npm存儲庫?您可以將所有可重用組件放入私有npm存儲庫,然後將它們裝載到每個應用程序中。雖然我不知道這是否可以解決如何共享本地模塊。

+0

我實際上已經有一個私人存儲庫。我的意思是,我使用git來加載核心模塊,它可以工作,但正如你所說,它不會加載本地模塊或依賴項,所以我必須編譯並安裝在每個子項目上。 – sfratini