2016-09-02 2 views
10

Ich habe gerade eine Komponente für React-Native erstellt, die ich bald auf npm als Paket schieben werde. Obwohl ich ein Problem habe.React Native Komponentenabhängigkeit, die RMP Link benötigt

Die Komponente ist abhängig von einem anderen npm-Paket namens react-native-image-resizer. Dieses Paket muss mit rnpm verbunden sein, um zu funktionieren.

Wenn ich meine Komponente nur in einem brandneuen Projekt installiere, wird die Abhängigkeit nicht automatisch verknüpft und die native Bibliothek wird nicht im Projekt angezeigt. Natürlich, wenn ich rnpm link ausführen, wird es auch nicht zum Projekt hinzufügen.

Also frage ich mich, was wäre der beste Weg, um diese Abhängigkeit zu installieren und zu verknüpfen?

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... 

Auch, wie Sie es sehen können, ich habe ein ungedecktes Peer Abhängigkeiten Problem mit reagieren-native, wenn ich meine Komponente in meinem Beispielprojekt installieren, auch wenn es richtig aufgeführt ist (mit der richtigen Version) in meine Abhängigkeiten in 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" 
    } 
} 

Irgendeine Idee, warum es sich beschwert?

Repo der Komponente verfügbar hier: http://github.com/alexmngn/react-native-image-crop.git

Dank

Antwort

3

Die rnpm link nur Links Pakete es in package.json gefunden, in der Regel diese Pakete über den Befehl installiert sind rnpm install oder npm install --save.

Um dies automatisch für diejenigen zu tun, die Ihr Paket installieren, können Sie ein preinstall npm-Skript schreiben, das vor dem installierten Paket ausgeführt wird.

Im package.jsonscripts Block wie diese

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

dies Nach tun, fügen Sie, wenn jemand versuchen, Ihre pacakge über npm zu installieren, wird react-native-image-resizer zuerst installiert werden, und auch leave ab Eintritt in package.json hinzufügen - > Abhängigkeit, damit RMP Link korrekt funktionieren kann.

Weitere Informationen Lesen Sie mehr über npm script

+0

ich das nicht mein Problem zu beheben machen könnte. Ich habe gerade ein Repo auf GitHub mit meiner Komponente erstellt, Link ist in der Frage Post. Kannst du sehen, was das Problem ist? – alexmngn

Verwandte Themen