2016-07-16 17 views
2

Voraussetzungen:Was ist der richtige Weg, um die Struktur des SPA-Projekts in Bezug auf eine bequeme Bereitstellung und Versionskontrolle zu organisieren?


brauche ich Single-Seiten-Anwendung (SPA) Projektentwicklung und Frontend ogranize js Frameworks basiert auf einem von popuplar Frontend werden sollte, und dies bedeutet, Nutzung von System Frontend Gebäude basierend auf schluck/webpack für den Aufbau des endgültigen Bundles von sagen wir Es2015 js Quellen, Sass Stilen und Jade Markup. Backend sollte auf Laravel 5.x basieren.

Also endlich habe ich Frontend-Bundle, die mit Backend-Code arbeiten sollte. und auf jeder Stufe der Entwicklung habe ich bestimmte Frontend-Bundle und bestimmte Backend-Code, die richtig zusammenarbeiten können.

Fragen:


  1. Wie die meisten richtig all meine Quelle platzieren Code unter Versionskontrolle (lassen Sie sich mit der Verwendung von Git sagen)? Muss ich ein Repo für alle Projekte von zwei separaten Repos für Backend- und Frontend-Teile erstellen? Warum?

  2. Wie organisiert Versionskontrolle für die bequemste und einfachste Bereitstellung der aktuellen Release-Version des Projekts auf Produktionsserver?

Hier sind meine Gedanken: es wie eine gute Idee sieht aktuelle Version sowohl Frontend-Bundle und Backend-Code haben + Migrationen in einem Repo, aber mein Dilemma ist: für die Produktion muß ich nur Frontend Bündel aber nicht initialer Frontend-Quellcode (Sass, Jade usw.). Mein Frontend-Bundle rebuldiert bei jeder Änderung im Frontend-Quellcode/styles/makrup ständig mit meinem Buildsystem, so dass das Output-Bundle nach jedem Build unterschiedlich ist.

  • Wenn ich gemeinsame Repo für Backend und Frontend erstellen würde, dann Frontend-Quellen werden auch in den Repo aufgenommen und ich brauche sie nicht auf Produktionsserver.
  • Wenn ich zwei separate Repos für Frontend und Backend erstellen würde, wie würde ich das tatsächliche Frontend-Bundle und die tatsächliche Version des Backend-Codes synchronisieren und wie würde ich zu einer bestimmten Version meines Projekts zurückkehren?
  • Ich hoffe, das wurde ganz klar geschrieben, um mich zu verstehen, und ich frage jede Art von Rat oder Links für einige Dokumente, die solche Fragen für mich klären können.

    Antwort

    1

    Wenn ich zwei separate repos für frontend schaffen würde und backend, dann, wie würde ich synchronisieren tatsächliches frontend Bündel und eine aktuelle backend Code und wie würde ich auf bestimmte Version meines Projektes zurückkehren?

    die in der Regel durch einen Elternteil Repo deren Aufgabe erledigt ist, die richtige Version der frontend und backend erklärt als submodules aufzunehmen.

    Jedes Mal frontend und backend Änderung Ihre Eltern Repo git status die SHA1 jene Repo geändert haben erwähnt (dh ihr gitlinks, special entries in the index des Haupt Repo-parent)

    von der Mutter Repo schieben (zusätzlich von Drücken frontend und backend Repos), verfolgen Sie, welche Version von frontend mit welcher Version von backend geht, und Sie können zu einer bestimmten Version des Projekts (über die Parent-Repo-Geschichte) zurückkehren.

    +0

    Vielen Dank für Ihre Antwort, aber da ich nicht sehr gut in Git kann Sie mir klarstellen, wenn ich nur zusammengebaute Bundle, aber nicht ganze Frontend Repo von Frontend-Projekt für mein Backend und sogar einen Teil dieses Bundle brauchen (nur zusammengestellte Stile und Skripte), werden Submodule mir in diesem Fall helfen? Sie sehen, gibt es zwei Aspekte meines Problems: 1) an jedem Umbau meines Frontend ich für mein Backend nur frisches Build Bundle benötigen, und ich möchte nicht jedes Mal manuell kopieren bündeln nach dem Umbau, 2) Ich möchte eine einfache Bereitstellung meines Backends ohne manuelle Kopie des Frontend-Pakets. – dajnz

    +0

    @dajnz Sie sind richtig, dass (Submodul) wäre keine Idee: ein Submodul ist ein Git Repo, ein * alle * Git Repo (nicht nur ein Teil davon). Wenn Sie Ihre Codebasis in unabhängige Module aufteilen können, ist der Submodulansatz für Sie geeignet. – VonC