2017-10-18 13 views
1

コードを最大限に活用するために、複数のモバイルアプリケーションで使用するコンポーネントを構築しています。これまでのところ、gitリポジトリをpackage.jsonの依存関係として使用することができました。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') 

、これは必要なすべてのこと私の子アプリケーションの1つ私は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

関連する問題