2017-10-18 1 views
1

코드 재사용을 극대화하기 위해 여러 모바일 응용 프로그램에서 사용하려는 구성 요소 집합을 구성하고 있습니다. 지금까지 나는 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

관련 문제