2016-09-02 19 views
10

React-Native用のコンポーネントを作成しましたが、すぐにパッケージとしてnpmにプッシュします。私は問題に直面しているが。React rnpmリンクが必要なネイティブコンポーネント依存関係

コンポーネントは、react-native-image-resizerと呼ばれる別のnpmパッケージに依存します。このパッケージを動作させるには、rnpmにリンクする必要があります。

新しいプロジェクトにコンポーネントをインストールするだけでは、依存関係は自動的にリンクされず、ネイティブライブラリはプロジェクトに表示されません。もちろん、rnpm linkを実行しても、プロジェクトに追加されません。

この依存関係をインストールしてリンクするにはどうすればよいでしょうか?あなたがそこに見ることができるよう

MacBook-Pro:Example $ npm install react-native-image-crop 

> [email protected] preinstall /Users/alexmngn/Work/react-native-image-crop/Example/node_modules/.staging/react-native-image-crop-95365d1b 
> npm install --save react-native-image-resizer 

[email protected] (git+ssh://[email protected]/alexmngn/react-native-image-crop.git#90e002c7d0f01c9d61277c30cad375560f09a94a) /Users/alexmngn/Work/react-native-image-crop/Example/node_modules/.staging/react-native-image-crop-95365d1b 
├── UNMET DEPENDENCY [email protected]^0.31.0 
└── [email protected] 

npm WARN [email protected] requires a peer of [email protected]>=v0.14.2 but none was installed. 
npm WARN [email protected] No repository field. 
- [email protected] node_modules/react-native-image-crop/node_modules/react-native-image-resizer 
[email protected] /Users/alexmngn/Work/react-native-image-crop/Example 
└── [email protected] (git+ssh://[email protected]/alexmngn/react-native-image-crop.git#90e002c7d0f01c9d61277c30cad375560f09a94a) 

MacBook-Pro:Example $ rnpm link 
MacBook-Pro:Example $ # Nothing gets linked here... 

また、私はそれがに(右バージョンで)適切にリストされているにもかかわらず、反応-ネイティブ私は私の例のプロジェクトで私のコンポーネントをインストールする場合と満たされていないピアの依存関係の問題を持っていますpackage.jsonの私の依存関係:

{ 
    "name": "Example", 
    "version": "0.0.1", 
    "private": true, 
    "scripts": { 
    "start": "node node_modules/react-native/local-cli/cli.js start" 
    }, 
    "dependencies": { 
    "react": "15.2.1", 
    "react-native": "^0.31.0", 
    "react-native-image-crop": "git+ssh://github.com/alexmngn/react-native-image-crop.git" 
    } 
} 

何故それが不平を言うのですか?ここで使用可能なコンポーネントの

レポ:http://github.com/alexmngn/react-native-image-crop.git

おかげ

答えて

3

rnpm linkは、一般的にこれらのパッケージは、コマンドrnpm installまたはnpm install --saveを介してインストールされていることがpackage.jsonで見つかったパッケージを、リンクします。

あなたのパッケージをインストールする人にこれを自動的に行うには、パッケージがインストールされる前に実行されるpreinstall npmスクリプトを書くことができます。 package.json

は、誰かがreact-native-image-resizerが最初にインストールされ、NPM経由であなたの可能パッケージをインストールしようとすると、これを実行した後、この

{ 
    "scripts": { 
    "preinstall": "npm install --save [email protected]" 
    } 
} 

ようscriptsブロックを追加し、また、package.jsonに休暇ABエントリを追加します - > rnpmリンクが正しく動作するように依存関係を設定します。

詳細についてはnpm script

+0

私の問題を解決するためにこれを行うことができませんでした。私はちょうど私のコンポーネントでgithub上のレポを作成し、リンクは質問の投稿にあります。あなたは何が問題なのか分かりますか? – alexmngn

関連する問題