2017-03-16 4 views
1

Ich benutze Mix (das gilt auch für Elixir), um meine Frontend Assets zu verwalten. Ich habe Mix auf Versionsdateien in der Produktion konfiguriert, aber nicht in Dev. Als solche, wenn ich Vermögenswerte aktualisiere, bekomme ich aktualisiert app.js und app.css Dateien in dev und app.{hash}.js und app.{hash}.css Dateien in der Produktion.Wie kann ich Frontend-Assets mit Laravel Mix und Git verwalten?

Was ist Ihr Rat, wie Sie dies mit Versionskontrolle nutzen können?

  1. Legen Sie die Dateien in Versionskontrolle? Wenn ja, wie bewältige ich die ständigen Änderungen während der Entwicklung? Fügen Sie neue Hash-Dateien hinzu? Verlasse ich app.js und app.css auf dem Produktionsserver?
  2. .gitignore die js und css-Dateien und npm auf dem Produktionsserver ausführen, um die Assets lokal zu kompilieren?
  3. Eine andere Lösung?

Was sind Ihre Gedanken dazu?

Vielen Dank im Voraus.

Antwort

0

Rewrite-App. {Hash} js mit nginx app.js und fügen ihre

+0

Mein Problem ist nicht auf Webserver-Ebene, es ist auf, wie Sie die Dateien lokal mit git verwalten. Mein Bauch sagt mir, dass das Kompilieren der Assets in der Produktion eine schlechte Idee ist, aber das Löschen/Hinzufügen neuer Dateien nach dem Kompilieren von Assets ist ein Pita. –

4

An meinem Arbeitsplatz gitignore wir .gitignore'd die css/js Ordner für fast ein Jahr lang für verschiedene Projekte haben mit kein Problem, wenn der Server nur npm als Teil seines Build-Schritts behandelt.

Und wenn Sie Garn verwenden, erstellt es eine Sperrdatei, die sicherstellt, dass Sie genau die gleichen Abhängigkeiten von der Produktion erhalten.

Wenn Sie die Versionierung verwenden, verwenden Sie einfach den Helfer mix() in Ihren script/css-Tags und es wird auf die richtige Datei über die Datei mix-manifest.json im öffentlichen Verzeichnis zugreifen.

Zum Beispiel:

Layout/app.blade.php hat

<script src="{{ mix('js/app.js') }}"></script>

wenn Sie npm Mix schafft die Öffentlichkeit/mix-manifest.json Datei wie so

laufen { "/js/app.js": "/js/app.{hash-example}.js" }

Das einzige Problem, das ich gesehen habe, ist mit Mix und Verwendung der mix() Helfer es erscheint nur zu arbeiten, während npm watch ausgeführt wird, das ist etwas Elixier behandelt gut vor, aber Mix ist relativ neu, so dass es angesprochen werden kann, ich selbst habe nicht genervt genug, um es in der Entwicklung seit ich immer npm run hot laufen, die heiß Nachladen tut auf irgendwelchen js Dateiänderungen. - Edit: Dies scheint jetzt behoben zu werden

+1

Danke für deine Antwort, es hat geholfen. Wollte man eine Sache wissen, sollte 'mix-manifest.json' auf git festgelegt werden? –

+1

Es kann sein, aber es gibt nicht viel Sinn, wenn Sie '.gitignore''ing die/js und/css-Ordner sind. Seien Sie sich jedoch bewusst, dass die Ausnahme schnell ausgelöst wird, wenn sie die Datei "mix-manifest.json" nicht finden kann und diese als Erinnerung für die Ausführung von npm dient. Es stolpert immer einige unserer Teammitglieder. –

+1

Verstanden. Danke, Mann! –

Verwandte Themen