2017-12-12 19 views
0

나는 원시를 상상한다. 몇 가지 코드를 재사용 할 몇 가지 원시 응용 프로그램을 만들 계획입니다.
그들이 공유 할 코드는 세션 관리, API, 스토리지 관리자, 포맷터 등입니다. 이들은 고유 기본 요소가 아닙니다!코드를 공유하면서 응용 프로그램마다 다른 구성을 사용하여 다중 응답 원시 응용 프로그램을 관리하는 방법은 무엇입니까?

그래서 나는 다음과 같은 구조로이 프로젝트를 구성하려면 :

  • APP_1 (다른 package.json)
  • APP_2 (다른 package.json)
  • app_n (다른 패키지 .json)
  • package_that_every_app_imports (다른 패키지 .json)

내 문제는 project_that_every_app_includes의 일부 모듈이 응용 프로그램별로 구성되어야한다는 것입니다.

그래서 나는 다른 모듈에서조차 모든 모듈이 액세스 할 수있는 전역 변수를 설정할 수 있다고 생각합니다.

package_that_every_app_imports 대신이 모듈을 구성하는 더 좋은 방법이 있습니까?

UPDATE 1 (물론 제외하고 인스턴스의 생성자에 구성을 전달하여) : 주위 재생 후
나는 APP_1에서 전역 변수를 설정하면 전역 변수가 package_that_every_app_imports에서 사용할 수없는 것 같다 초기 추측은 잘못되었습니다.

답변

0

는 좀 더 연구를하고 후에 나는이 패키지 나 파일을 .env를 사용하여 다른 구성 환경 (개발, 생산, 등 ...) 생성/관리 할 수 ​​있습니다 react-native-config

라는이 패키지 우연히 발견.

.env의 예 :

BASE_URL=http://staging.example.org/ 
ENVIRONMENT=staging 

변수가 액세스 될 수와 같은 구성도 문제없이 package_that_every_app_imports의 모듈에 액세스 할 수

import Config from "react-native-config"; 
const base_url = Config.BASE_URL; 

.

0

모든 응용 프로그램의 루트 폴더에 공유 구성 요소 폴더 (package_that_every_app_imports)를 복사하는 것이 좋습니다. 루트 폴더에서 제거하면 외부 코드의 변경에 취약 해집니다.

공유 구성 요소 (모듈)의 모든 필수 구성은 외부 구성 요소 (App)에서 내부 구성 요소 (모듈)까지 소품을 통해 전달되어야합니다.

+0

일부 구성이 필요한 모듈은 간단한 기능이거나 일부 논리가있는 간단한 클래스입니다.이 모듈 중 어느 것도 반응 고유 모듈 (React.Component 확장)이 아닙니다. 하지만 구성 요소가 속성을 통해 구성되어야한다고 지적 해 주신 데 감사드립니다. –

+0

"외부 코드의 변경에 취약 할 수 있습니다."라는 말이 무슨 뜻입니까? 예를 들어 줄 수 있습니까? –

+0

@SteliosJosephKarras 함수의 매개 변수를 통해 구성 데이터를 전달할 수 있습니다. 하지만 모듈이 어떻게 작동하는지 정확히 알지 못하기 때문에 이것이 최선의 선택이라고 말할 수는 없습니다. 필자는 함수형 프로그래밍 스타일 (함수에 의해 필요한 모든 데이터가 매개 변수를 통해 전달되는)을 좋아하지만 때로는 다른 스타일을 사용하는 것이 더 나을 때가 있습니다. –