2016-11-07 4 views
4

몇 가지 구성을 제외하고 실제로 동일한 코드베이스 (src 폴더 내)를 공유하는 두 개의 앱이 있습니다. 현재의 폴더 구조는 다음과 같습니다React Native의 두 앱에서 코드 공유

├── app1 
│   ├── android 
│   ├── index.android.js 
│   ├── index.ios.js 
│   ├── ios 
│   ├── node_modules 
│   ├── package.json 
│   └── src 
└── app2 
    ├── android 
    ├── index.android.js 
    ├── index.ios.js 
    ├── ios 
    ├── node_modules 
    ├── package.json 
    └── src 

index.android.js 내부 및 index.ios.js 내가 예와 SRC/폴더에서 모듈을 필요로 해요 import MainView from './src/mainView';

이 방법은 분명히 이상적인 두 개의 다른 위치에 동일한 코드베이스를 유지해야합니다.

├── app1 
│   ├── android 
│   ├── index.android.js 
│   ├── index.ios.js 
│   ├── ios 
│   ├── node_modules 
│   └── package.json 
├── app2 
│   ├── android 
│   ├── index.android.js 
│   ├── index.ios.js 
│   ├── ios 
│   ├── node_modules 
│   └── package.json 
└── src 

은 불행히도이 호출이 구조를 제대로 경로가 해결되지 않는 요구 :이 유사한 폴더 구조를 갖고 싶은 이유 때문이다. 내가 import MainView from '../src/MainView'를 사용하는 경우 다음과 같은 오류 메시지가 나타납니다 : 내가 원하는 것을 달성하는 또 다른 방법은

error

있습니까?

답변

0

동일한 문제를 해결하려고합니다.

가능한 해결책은 각 src 디렉토리의 외부 src 디렉토리에 대한 심볼릭 링크를 사용하는 것입니다. 나는 아직 이것을 시험해 보지 않았다.

+0

조금 더 깊게 파고 드는 것은 'npm link'로 달성 할 수 있다고 생각합니다. 이 기사를 확인해보십시오 : http://justjs.com/posts/npm-link-developing-your-own-npm-modules-without-tears – Arrkaye

+0

나는 너무 생각하고 있었지만 RN으로는 불가능하다고 생각합니다. 포장기. 내 대답에 게시 된 토론을 참조하십시오. –

+0

네가 맞아, 나는이 일을 할 수 없었다. 내가 가지고있는 문제는 RN/React에 대한 의존성이있는 공유 된 구성 요소 였고 패키지 작성자가 원래 프로젝트에 설치했을 때 충돌 (RN이 두 번로드 됨)에 대해 불평했다. 여기 하나 잃어버린 것. – Arrkaye

0

this use case here에 대한 토론이 많았습니다. watchman으로 포장기를 실행하려면이 방법을 사용할 수 없다고 생각합니다. 최신 버전의 RN에서도 여전히 문제를보고합니다.

사용 사례에 따라 나에게 맞는 옵션 중 하나는 우리의 응용 프로그램간에 공유 파일을위한 별도의 npm repo를 작성하고 두 가지 모두에 의존성으로 추가하는 것입니다 (코드 변경으로 인해 이미 그것을 사용). 또한 전체 버전 관리 관점에서도 도움이됩니다. GH repos for dependencies을 사용할 수 있으므로 개인 GitHub 저장소 (우리가 사용하는 것)가 될 수 있습니다.

+1

패키지와 주 프로젝트가 모두 RN에 종속되어있는 경우이 방법을 사용할 수 있습니까? 나는 packager에서 동일한 컴포넌트를 등록하려고 할 때 오류가 발생했다. – Arrkaye

관련 문제