Shopware 5 Theme Entwicklung mit Grunt

Shopware 5 Theme Entwicklung mit Grunt

Alexander Wolf
19. August 2015

Im letzten Beitrag haben wir uns angeschaut wie wir unser Theme mit LESS anpassen können.

Wie ihr bereits gemerkt habt, muss LESS jedenfalls kompiliert werden. Es wird einfach in CSS übersetzt.

Dieses Kompilieren können wir automatisieren. Wie? Mit Grunt.

Was genau das ist und wie es funktioniert, findet ihr auf deren Website. Ich zeige euch nur wie ihr eure Themes damit zum Laufen bekommt um euch etliche Klicks zum Kompilieren zu ersparen.

Vorbereitung

Um Grunt auf unserem Mac zu installieren brauchen wir folgendes:

node.js

Installer auf nodejs.org runterladen und ausführen.
Im Terminal

sudo npm install npm -g

eingeben um den Paketmanager ggf. upzudaten.

Grunt CLI

Im Terminal

sudo npm install -g grunt-cli

eingeben um das command line interface zu installieren, sodass wir grunt überall nutzen können.

Konfigurationsdatei

Bevor wir starten können, müssen wir eine Konfigurationsdatei generieren mit allen Informationen zu unserem ausgewählten Theme. Dazu einfach auf höchster Ebene beim Shop folgendes eingeben:

php bin/console sw:theme:dump:configuration

Es wird die Datei

/web/cache/config_1.json

angelegt (die 1 steht für die Shopid, kann also abweichen).

Grunt Module

Zu guter Letzt noch in den themes Ordner wechseln mit

cd themes

und alle grunt Module lokal installieren mit

sudo npm install

Starten

Alles ist vorbereitet und wir können loslegen. In der Gruntfile (Konfigurationsdatei für Grunt selbst) ist ein Modul installiert, welches die Veränderungen der Dateien beobachtet. Sobald wir an einer LESS Datei Anpassungen vornehmen werden diese automatisch kompiliert und wir brauchen nur noch die Seite neuladen im Shop. Deutlich einfacher und schneller als jedesmal im Backend das Theme zu kompilieren.

Um dies zu starten einfach

grunt

*Falls Fehler bzgl. Zugriffsberechtigung anfallen, einfach sudo vorschreiben. Dies führt den Code als Administrator aus.

und wir sehen folgendes:

Shopware 5 Grunt watch

Grunt überwacht unsere Dateien und wir können lustig drauf loscoden.

Zusammenfassung

Wir haben node.js (inkl. npm) und Grunt installiert. Grunt ist ein Task Runner, der bestimmte Aufgaben automatisiert ausführen kann. In unserem Fall ist es das Kompilieren von LESS Dateien. Es beschleunigt und erleichtert die Arbeit um einiges. Wenn wir etwas vertrauer mit Grunt seid, könnt ihr weitere Module einbauen und noch mehr automatisieren. Demnächst gibt es eine Liste über weitere Module die sehr gut in Verbindung mit Shopware 5 Theme Entwicklung eingesetzt werden können.

Update

Bei einigen gab es folgenden Error:

[Zend_Db_Adapter_Exception]
SQLSTATE[HY000] [2002] No such file or directory

Das könnt ihr aber ganz einfach lösen mit folgenden Befehlen:

sudo mkdir /var/mysql
sudo ln -s /Applications/MAMP/tmp/mysql/mysql.sock /var/mysql/mysql.sock
sudo chown _mysql /var/mysql/mysql.sock
sudo chmod 777 /var/mysql/mysql.sock

Bei Fragen einfach ein Kommentar schreiben.

MAMP

Wenn du lokal entwickelst mit MAMP, dann musst du die richtige PHP Version erwischen, damit die Konsolenbefehle von Shopware greifen. Wie rawcat unten in den Kommentaren bereits geschrieben hat (Vielen Dank dafür!), muss der richtige Pfad angegeben werden. Bei ihm war es /Applications/MAMP/bin/php/php5.6.2/bin/php bin/console sw:theme:dump:configuration.

Weitere Links

Alexander Wolf
Alexander Wolf
Alexander Wolf ist Gründer, Autor und Entwickler bei der Shopware Agentur 8mylez.com. Er mag alles was mit Entwicklung und Servern zu tun hat.

39 Kommentare

Atilla
Atilla
Hi Alex,

Ich wollte nur nochmal Danke sagen, das mit Grunt hab ich jetzt vorerst an den Nagel gehangen. Dafür finde ich langsam Spaß an der CLI Konsole. Langsam fallen mir auch wieder diese alten Befehle alle wieder ein ^^

Grüße
Alexander Wolf
Alexander Wolf
Hey Atilla,

das freut mich!

Ja Grunt oder die Konsole kann einem den Alltag schon etwas versüßen :)

Gruß
Alexander
Daniel
Daniel
Wenn bei euch (Mac + MAMP) trotz des Updates der Fehler "SQLSTATE[HY000] [2002]" weiterhin auftritt, muss einmal der Port von MYSQL kontrolliert werden.

Bei MAMP -> Einstellungen -> Ports

Bei mir musste der Port in der config.php von 3306 auf 8889 geändert werden. Alternativ kann natürlich auch der Port selbst im MAMP geändert werden.
Alexander Wolf
Alexander Wolf
Hey Daniel,

vielen Dank für diesen hilfreichen Tipp!

Gruß
Alexander
Atilla Boz
Atilla Boz
Hallo Jungs,

kurze Frage:
"Bevor wir starten können, müssen wir eine Konfigurationsdatei generieren mit allen Informationen zu unserem ausgewählten Theme. Dazu einfach auf höchster Ebene beim Shop folgendes eingeben: php bin/console sw:theme:dump:configuration"

Muss ich das auch im Terminal eingeben, ja oder? Ich weiß nur nicht wie ich von da aus in irgendeine andere Ebene wechseln kann. Den ersten Befehl hatte ich fehlerfrei durchbekommen.

Ich habe heute ein neues Shopware lokal via Bitnami aufgesetzt und der Shop liegt in Applications/shopware-5.3.7-0/apps/shopware/htdocs wie in 7 Bisons Namen kann ich da jetzt bite Grunt aktivieren?

1000 Dank im Voraus,
Atilla
Alexander Wolf
Alexander Wolf
Hey Atilla,

jo genau, den Befehl musst du auch im Terminal eingeben. In den Ordner navigieren mit cd /Applications/shopware-5.3.7-0/apps/shopware/htdocs und dann php bin/console usw. eingeben (wie oben beschrieben).

Hierbei verwendest du dann das auf deinem installierte PHP und nicht das von Bitnami, sollte aber keine Probleme machen, sofern du die selben Versionen verwendest.

Ansonsten kannst du mal nach der Bitnami Console googlen, damit solltest du dann entsprechend die PHP Version in deinem Bitnami Stack nutzen koennen.

Gruß
Alexander
Chris
Chris
Hallo Alex,

Ich habe Grunt wie in der Anleitung erklärt aufgesetzt und arbeite mit phpStorm. Wenn ich die Smarty Blöcke ändere erkennt es Grunt und beim Aktualisieren der Website ist diese auch sichtbar. Wenn ich bei einer .less Datei jedoch z.B. die Farbe ändere ist dies nicht der Fall.

Grunt erkennt es zwar und macht was, aber die Änderung ist erst sichtbar wenn ich im Backend das Theme neu kompiliere.

Hab ich da irgendetwas falsch eingestellt oder kann ich mit Grunt automatisch das Theme neu kompilieren?
Alexander Wolf
Alexander Wolf
Hey Chris,

du musst jedes mal nachdem du im Backend kompiliert hast die Konfiguraition neu "dumpen", damit die Verknuepfungen hergestellt werden und Shopware weiß, welche erstellte Datei verwendet werden soll.

Gruß
Alexander
Michi
Michi
Habe nachdem ich das gemacht habe lokal einen 500 Error bekommen, weißt jemand woran das liegt?
Alexander Wolf
Alexander Wolf
Hey Michi,

500er Fehler sind in der Regel immer Serverfehler und werden in den Logdateien festgehalten mit einer Fehlermeldung. Wenn du uns diese raussuchen kannst, koennen wir einen Blick drauf werfen!

Ansonsten sagt es im Allgemeinen, dass der Server falsch konfiguriert ist. Was im Prinzip fast alles sein koennte :/

Wie arbeitest du lokal? Kommst du an die Logdateien?

Gruß
Alexander
Michi
Michi
War mein Fehler, hatte ein Smarty falsch extended. Wurden leider nirgendwo Fehler oder Errors ausgegeben.. Danke dir !
iTommy
iTommy
Hi Zusammen!!
ähem.... wie es aussieht hat mich die Grunt installation überfordert....

Ich habe nodejs installiert.

Bin dann weiter übers Terminal bis zum Erstellen der config Datei.
Hier kam ich nicht weiter....
Deshalb wollte ich das Thema einfach erstmal wieder stecken lassen...

habe also nodejs wieder deinstalliert mit:

"sudo npm uninstall npm -g
sudo rm -rf /usr/local/lib/node /usr/local/lib/node_modules /var/db/receipts/org.nodejs.*
sudo rm -rf /usr/local/include/node /Users/$USER/.npm
sudo rm /usr/local/bin/node
sudo rm /usr/local/share/man/man1/node.1
sudo rm /usr/local/lib/dtrace/node.d
brew install node "

Jetzt startet in Mamp der MySqL Server nicht mehr und mein Projekt ist nicht mehr erreichbar.... Mist!!
Blöd das...

Kann mir hier evtl. jemand da wieder raushelfen?

(OSX El Capitan)
Alexander Wolf
Alexander Wolf
Hallo iTommy,

das kriegen wir schon wieder hin.

Schreib uns doch einfach eine Email an i@8mylez.com und unser Support meldet sich bei dir!

Gruß
Alexander
Sebastian Pieczona
Sebastian Pieczona
Für die lokale Entwicklung mittels MAMP & Co. würde ich eher empfehlen php versions aliases mit den dazugehörigen configs in die eigene ~/.bash_profile einzutragen, da es sonst unter gewissen Umständen und Systemen zu Problemen kommen kann, diese kann man dann zum Beispiel mittels "php56" aufrufen, die Einträge in der .bash_profile könnten z.B. so aussehen:

alias php55="/Applications/MAMP/bin/php/php5.5.26/bin/php -c '/Library/Application Support/appsolute/MAMP PRO/conf/php5.5.26.ini'"
alias php56="/Applications/MAMP/bin/php/php5.6.10/bin/php -c '/Library/Application Support/appsolute/MAMP PRO/conf/php5.6.10.ini'"
alias php56cgi="/Applications/MAMP/bin/php/php5.6.10/bin/php-cgi -c '/Library/Application Support/appsolute/MAMP PRO/conf/php5.6.10.ini'"
Alexander Wolf
Alexander Wolf
Hallo Sebastian,

vielen Dank für deinen Input!

Ist auf jeden Fall eine gute Idee.

Gruß
Alexander
mats
mats
Ich bekomme beim Befehl "php bin/console sw:theme:dump:configuration" immer den folgenden Fehler: "Site error: the file /Users/…/Shopware/engine/Shopware/Plugins/Community/Core/SwagLicense/Bootstrap.php requires the ionCube PHP Loader ioncube_loader_dar_5.5.so to be installed by the website operator. If you are the website operator please use the ionCube Loader Wizard to assist with installation."

IonCube läuft jedoch laut IonCube Loader Wizard und auch laut Shopware fehlerfrei.

Jemand eine Idee, woran das liegen könnte? Vielen Dank für eure Hilfe im Voraus!
rawcat
rawcat
Hi, ich habe das selbe Problem. Ich habe jetzt vermutet, dass bei diesem Befehl nicht das MAMP php verwendet wird, sondern das native OSX php und dort fehlt natürlich IonCube.

Habe es auch nach vielen Stunden nicht lösen können und wäre sehr dankbar für Tipps!
Oliver
Oliver
Hallo,

ich bekomme auf Mac OSX beim Versuch die Konfigurationsdatei zu erstellen (php bin/console sw:theme:dump:configuration) ständig folgende Fehlermeldung:

[Zend_Db_Adapter_Exception]
SQLSTATE[HY000] [2002] Operation timed out
Alexander Wolf
Alexander Wolf
Hallo Oliver,

das hört sich nach einem Problem mit der Datenbank an.

Hast du MySQL selbst installiert oder nutzt du MAMP (oder etwas anderes) ?

Gruß
Alexander
Björn Nagel
Björn Nagel
Muss das Compiler Cache eigentlich deaktiviert werden, damit das ganze dann funktioniert?
Alexander Wolf
Alexander Wolf
Hallo Björn,

laut Forum muss es deaktiviert sein. Ich habe beides ausprobiert und konnte keine Probleme feststellen.

Gibt es bei dir Probleme?

Gruß
Alexander
Björn Nagel
Björn Nagel
Kurz für diejenigen, die das hier lesen und wie ich folgende Fehlermeldung bei Eingabe von "php bin/console sw:theme:dump:configuration" bekommen und bei denen das UPDATE auch nicht hilft:
"SQLSTATE[HY000] [2002] No such file or directory"

Ihr müsst in der config.php statt "localhost" "127.0.0.1" eingeben. Dann sollte es funktionieren.
Alexander Wolf
Alexander Wolf
Hallo Björn,

vielen Dank für diesen Tipp!

Gruß
Alexander
LESS Code einfacher finden - Shopware 5 Theme Entwicklung
[…] UPDATE: Falls ihr Grunt nutzt um eure Themes zu entwicklen, braucht ihr die Einstellung nicht, da dies Grunt für euch übernimmt und die CSS Sourcemap erstellt. Wie ihr das anstellt: Shopware 5 Theme Entwicklung mit Grunt […]
LESS Code einfacher finden - Shopware 5 Theme Entwicklung
[…] Shopware 5 Theme Entwicklung mit Grunt […]

Was denkst du?

SW6 Logo

Sicher Dir die besten Shopware 6 Tipps & Tricks

Trag Dich ein und Du erhältst unser Shopware 6 Whitepaper kostenlos!
Trag dich für unseren Newsletter an, im Anschluss erhältst du das Whitepaper. Mit dem Abschicken deiner Daten akzeptierst Du unsere Datenschutzerklärung.

Neueste Beiträge

Shopware 6 MCP: Deinen Shop mit Claude und Codex verbinden
Shopware PaaS Native: Wann sich Platform as a Service für deinen Shop lohnt
Was verbirgt sich hinter Copilot & Nexus bei Shopware?
Performance-Grenzen ausreizen – Shopware-Stresstest für Bestellungen in Millionenhöhe
Shopware Update 6.6 auf 6.7 ist da

Kontaktanfrage

Fragen? Schreib uns.

Kontaktiere uns gern, wenn Du Interesse an gemeinsamen Projekten hast.
HR Managerin Monika Geiß
Standort Paderborn Icon

Paderborn

Technologiepark 23

33100 Paderborn

Standort Paderborn Icon

Leipzig

Berliner Straße 13

04105 Leipzig

Kontaktanfrage

✓ 36 Mitarbeiter

✓ Shopware Platinum Partner

✓ 47.000+ Plugin Downloads

✓ 60+ aktive Shops

✓ Full-Service Shopware Agentur

✓ 70 Shopware Videos auf Youtube

✓ Alle Shopware Zertifizierungen

Maxcluster

Shopware United

Pickware 

Mollie

B2B Sellers

TimmeHosting

Händlerbund

© 2026 by 8mylez GmbH
|
ImpressumDatenschutz