2017-05-19 2 views
6

Ich entwickle ein Button UI-Paket für die Reaktion native. Ich versuche ein Beispielprojekt zu erstellen, um diese Schaltfläche zu testen. Die Verzeichnisstruktur ist wie folgt:React Native: npm Link lokale Abhängigkeit, Modul kann nicht aufgelöst werden

my-button/ 
    package.json 
    index.js 
    example/ 
     package.json 
     index.js 

Ich versuche npm link zu verwenden:

cd my-button 
npm link 

cd example 
npm link my-button 

In example/node_modules/ kann ich meine-Taste Symlink sehen, VSCode kann auch Auto-Vervollständigen-Funktion in my-Taste Paket.

Aber ausführt Beispiel app Fehler zeigen:

Unable to resolve module my-button ... 
Module does not exist in the module map or in these directories: ... 

Aber der Pfad in der Fehlermeldung ist korrekt.

Wissen Sie nicht, wo ich falsch lag, oder in React-Native haben Sie eine spezielle Möglichkeit, Link-lokale Abhängigkeit zu behandeln?

Ich versuchte auch npm install file:../.. Es funktioniert gut auf diese Weise, aber nicht einfach, die Abhängigkeit in example/ zu aktualisieren, nachdem ich meine-Taste bearbeitet habe.

+0

Haben Sie eine Lösung für dieses am Ende der Suche oder india reagiert nicht lokale npm-Pakete unterstützen? –

Antwort

-1

ändern package.json

//... 
"dependencies": { 
    //... 
    "my-button" : "file:../" 
    }, 
//... 
+0

Ich habe diese Methode bereits versucht, auf diese Weise wird das gesamte Projekt nach 'example/node_modules' kopiert, nicht nur ein Symlink. Es ist nicht sehr praktisch, die Abhängigkeit zu aktualisieren. –

0

in das gleiche Problem Ran. Während ich nicht npm link Arbeit, wie es sollte machen konnte, habe ich um ihn herum durch das lokale Paket im Projektordner Installation

npm install ../<package-folder> --save 

Dies installiert das Paket wie ein normales Paket, sondern aus dem lokalen Ordner. Der Nachteil ist, dass die Änderungen, die Sie am Paket vornehmen, nicht berücksichtigt werden. Sie müssen nach jeder Änderung npm install haben.

1

Der Befehl npm link funktioniert nicht, da React Native Packager doesn't support symlinks.

Nach ein wenig Forschung, entdeckte ich, dass es zwei Möglichkeiten gibt, darüber zu gehen.

  1. Verwenden Sie in der Beispiel-App haul packager. Haul unterstützt Symlinks, so dass Sie wie gewohnt npm link verwenden können.
  2. Verwenden Sie lokale Abhängigkeit über file:../ und bearbeiten Sie dann Dateien in node_modules Ordner oder installieren Sie jedes Mal neu, wenn Sie Änderungen vornehmen.

fand ich Haul für diesen Anwendungsfall sehr gut zu funktionieren und auch Set-up ein little starter project die storybook, die, wenn Sie zwischen vielen Komponenten wirklich hilfreich zu wechseln haben gehört auch.

0

Versuchen

npm run watch 

innerhalb der Schaltfläche Paket auszuführen. Zurzeit verwende ich dies, um Änderungen aus der Bibliothek auf mein Hauptprojekt anzuwenden. Bitte lass es mich wissen, wenn es funktioniert!

1

Versuchen WML (https://github.com/wix/wml)

Es ist eine Alternative zu npm link, die tatsächlich Kopien

Dateien von der Quelle zum Zielordner geändert
# add the link to wml using `wml add <src> <dest>` 
wml add ~/my-package ~/main-project/node_modules/my-package 

# start watching all links added 
wml start 
Verwandte Themen