2016-11-07 14 views
4

いくつかの設定を除いて、実際に同じコードベースを(srcフォルダ内で)共有する2つのアプリケーションがあります。現在のフォルダ構造は次のようになります。React Nativeの2つのアプリケーション間でコードを共有

├── 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';

このように、私は確かに理想的ではない2つの異なる場所に同じコードベースを維持する必要があります。残念ながら、必要とするコールは、この構造のパスを正しく解決しない

├── 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

私は同じ問題を解決しようとしています。

可能な解決策は、appディレクトリのそれぞれでシンボリックリンクを外部のsrcディレクトリに使用することです。私はこれをまだテストしていません。

+0

少し深く掘り下げて、これは 'npm link'で達成できると思います。この記事をチェックしてください:http://justjs.com/posts/npm-link-developing-your-own-npm-modules-without-tears – Arrkaye

+0

私もそう思っていましたが、RNパッケージャ。私の答えに載せた議論を見てください。 –

+0

あなたはそうです、私はこの仕事を得ることができませんでした。問題は、私が取り出した共有コンポーネントがRN/Reactに依存していて、元のプロジェクトにインストールしたときに競合(RNが2回ロードされている)に不満を抱いていたことです。ここでこれを失う。 – Arrkaye

0

this use case hereについては多くの議論があります。私はwatchmanでパッケージャを実行したい場合、これは可能ではないと思います。 RNの最新バージョンでも、人々は依然として問題を報告しています。

あなたのユースケースによっては、私の間で共有ファイルのために別々のnpmリポジトリを作成し、それを両方に依存するように追加するオプションがあります。すでに使用しています)。バージョン管理の観点からも役立ちます。 GH repos for dependenciesを使用できるので、これはプライベートGitHubリポジトリ(私たちが使用するもの)になる可能性があります。

+1

パッケージとメインプロジェクトの両方がRNに依存している場合、これを動作させることは可能ですか?私は同じコンポーネントを登録しようとしていることについてパッケージャでエラーが発生しました。 – Arrkaye