Ich nutzte immer Livereload bzw. Prepros bzw. Codekit. Ob lokal oder entfernt war egal, der Kunden-Webspace wurde als Laufwerk per Transmit eingebunden und das hat relativ gut funktioniert (also Änderungen an z.B. Stylus-Dateien wurden processed, .css wurde geschrieben, Browser hat sich automatisch aktualisiert bzw. den neuen Stand angezeigt).
Jetzt habe ich gulp mal ausprobiert (hätte auch grunt sein können), finde ich natürlich super, will ja auch ein cooles Kid sein. Aber es macht eben auch mehr als Prepros bzw. ich habe mehr Kontrolle. Soweit so gut. Die Frage ist, wie kann ich das bewerkstellingen, wenn mein Workflow so aussieht:
- Entwicklung Prototyp lokal (eigentlich lieber auch gleich auf eigenem/Kundenwebspace, der kein node hat).
- Aus diesem Prototypen werden nach Abnahme Templates für das CMS. Zu diesem Zeitpunkt liegt das Projekt definitiv "entfernt". Der Kunde (oder auch ich) pflegen schon Inhalte ins CMS ein, weitere Templates werden mit diesen Inhalten erstellt, quasi "live"auf dem Server. Ich sehe hier keine Möglichkeit, lokal zu entwickeln und etwas zu deployen, da die zugrunde liegenden Daten entfernt sind. Ich müsste also entweder den Stand des CMS auf lokal syncen, dann lokal entwickeln und wieder deployen oder ich verabschiede mich generell von dem Gedanken, grunt/gulp etc. in meinen Entwicklungsprozess zu integrieren.
Im Prinzip die Möglichkeit, den entfernten (Template-)Ordner wie bisher lokal einzubinden und die gulp-tasks darauf ausführen können und irgendwie die Vorschau/den Reload zu triggern. Funktioniert aber nicht wie gehofft, habe ich ausprobiert. Node-Module lassen sich zwar teilweise auch auf diesem Netzlaufwerk installieren, bricht aber irgendwann mit Fehlern ab, vermutlich ist einfach die Schreib/Lesegeschwindigkeit zu niedrig.
Eventuell geht irgendwas in Richtung Webspace wie bisher als Laufwerk einbinden und den betreffenden Ordner rsyncen? Oder irgendwie symlinken? Ich weiß doch auch nicht ;-)
Ich versuch's nochmal, obwohl wir gestern per Skype nicht weit gekommen sind. Vergiss erstmal LiveReload, das ist ggf. komplizierter, schätze ich (weiß ich nicht, weil ich immer nur LiveReload via Grunt lokal benutze).
Im Grunde geht es doch sehr wahrscheinlich darum, Template-Dateien zu erzeugen – Stylesheets aus Präprozessor-Dateien zu kompilieren, Javascripte zu kombinieren, den ganzen Kladderadatsch zu minifizieren, eventuell ein paar Grafiken zu optimieren etc. pp. und das Ganze dann samt PHP-Templates an den richtigen Ort auf dem entfernten Server zu bringen.
Wenn Du nun den entfernten Server als Netzlaufwerk (oder wie auch immer das in Transmit genau heißt) eingebunden hast, ist also der Ort, wo die Dateien hin sollen, letztlich nur ein lokales Verzeichnis. Du musst ja – zumindest ist das in Grunt so, aber ich nehme an, in Gulp auch – Dein Build-Skript nicht in diesem Verzeichnis laufen lassen, Du musst es nur in dieses Verzeichnis ausgeben lassen, also dafür sorgen, dass die erzeugten Template-Dateien dort landen. Die Quelldateien samt Build-Skript, npm-Module etc. pp. können in einem ganz anderen Verzeichnis liegen … denke ich. Probiert habe ich das natürlich auch noch nie. :)