2016-08-08 33 views
2

Gegenwärtig entwickeln wir zwei React-basierte Anwendungen, sagen wir app-a und app-b, die zwei Abhängigkeiten haben, die wir auch verwalten. Ein shared-components Paket, das gemeinsame Komponenten enthält, und ein shared-utilities Paket, das gemeinsam genutzte Dienstprogramme zwischen app-a und app-b enthält. Beide haben ihre eigenen voll auf package.json und sind in der package.json von app-a und app-b enthalten.Der beste Workflow für die Entwicklung von npm-Paketen, die voneinander abhängen

Abhängigkeiten:

app-a
|- shared-components
|- shared-utilities

und

app-b
|- shared-components
|- shared-utilities

Jedes Mal, wenn wir etwas in zum Beispiel sind die Entwicklung shared-components, die wir zum Beispiel der Verwendung in möchten app-a wir haben zu viele Schritte ausführen:

  1. <AwesomeComponent />
  2. Build-Dateien in shared-components in shared-components Stellen.
  3. Commit/Push zu GitHub.
  4. Zeigen Sie die Abhängigkeit in package.json von app-a auf die spezifische Verzweigung an.
  5. Lauf npm install.
  6. Verwenden Sie die <AwesomeComponent />.

Wenn wir einen Fehler bei der Entwicklung der gemacht, müssen wir von Schritt retart 1. Natürlich können wir die commit/push und npm install durch Kopieren der Build-Dateien in den Ordner node_modules direkt überspringen, aber immer noch, das ist ganz ein Ärger jedes Mal, wenn wir eine Komponente bauen.

Welchen Workflow verwenden Sie oder irgendwelche Tipps/Ratschläge, um lokale Entwicklung hier zu beschleunigen?

Hinweis; Wir verwenden Webpack, um unsere Dateien zu bündeln und zu transpilen.

Antwort

2

Was Sie wollen, könnte npm link sein.

Einfach in der shared-components mit sudo npm link einrichten. Dies erzeugt Symlinks in den globalen npm-Verzeichnissen (daher die Notwendigkeit für erhöhte Rechte, wenn Sie es als root installiert haben).

Als nächstes müssen Sie nur in app-a gehen und npm link shared-components ausführen, was den Ordner in node_modules durch einen Symlink ersetzt.

+0

Danke Mann! Das war genau das, was ich gesucht habe :-) Habe einige Berechtigungen Fehler, aber ich werde diese lösen. –