Der Grunt startet nicht

Hey Leute,

aus irgendeinem Grund will der Grunt bei mir nicht starten. Ich bin exakt nach Installationsanleitung vorgegangen und bekomme folgende Meldung:

/var/customers/webs/hollwedel/pier3.nn-webdesign.com/themes/Gruntfile.js:19
        content += @import "../${item}";;
                        ^
Loading „Gruntfile.js“ tasks…ERROR
>> SyntaxError: Unexpected token ILLEGAL
Warning: Task „default“ not found. Use --force to continue.

Aborted due to warnings.

Die eingesetzte Version ist 5.2.16.

Scheinbar mag er den Accent (`) nicht!?

npm install hast du ausgeführt? Theme Config auch gedumpt?

Folgendes habe ich ausgeführt:

cd var/cache/
./clear_cache.sh

./bin/console sw:theme:dump:configuration

cd themes/
npm install

und der anschließende Befehl ‚grunt‘ führt zu oben genannter Fehlermeldung. Alle anderen Befehle laufen ohne Fehlermeldung durch.

Schaut soweit gut aus. Hast du irgendwas am Gruntfile geändert? Ersetze es testweise doch mal mit der aktuellen Datei

Rennt er denn, wenn du den Shop speziell angbist? Also:

grunt --shopId 1

 

Das Gruntfile habe ich nie berührt. Die Idee hatte ich allerdings auch schon und habe das Gruntfile neu heruntergeladen und ersetzt - leider ohne Auswirkungen.

Nein, auch mit

grunt --shopId 1

läuft es nicht - gleiche Fehlermeldung.

Kurios - Welche Node & npm & Grunt Version hast?

node -v
npm -v
grunt -V

Der Fehler sagt ja, dass er den default Task nicht findet.

grunt default 

funktioniert auch nicht?

Alles frisch installiert:

[11:42] chipotle /var/customers # node -v                                                                                                                                                                                            
v0.10.29
[11:52] chipotle /var/customers # npm -v                                                                                                                                                                                            
1.4.21

 

Beide Versionen sind etwas alt.

Ich habe hier node v6.9.2 und npm 3.10.9.

Vielleicht bringt dir ein Update auf die neusten Versionen etwas, da rennt Grunt ohne Probleme.

Wenn du wie im Artikel beschrieben nicht gerade Ubuntu 14.04 hast, brauchst du auch nicht nodejs-legacy, sondern am besten die aktuellste Version.

Die aktuellste node LTS Version beinhaltet auch bereits npm 3.10.10

Das sind die Debian-Packages. Auf meinem alten Server habe ich die selben Versionen installiert und dort funktioniert es ohne Probleme.

Ach Debian ok - Ja da sind die Versionen ja immer etwas älter :slight_smile:

Grunt ist auch global installiert? 

 sudo npm install -g grunt

Jip, sonst könnte ich ja wahrscheinlich gar nicht den Befehl ‚grunt‘ im Themes-Ordner aufrufen, da der Befehl dann nicht bekannt wäre?!

Hatte das gleiche Problem vor ein paar Tagen. Das lag an einer veralteten jnode Version, die import nicht kannte. Such mal nach dem Thread im Forum. Auf meinem Handy kann ich den Thread nicht so leicht finden. Da steht auch eine Anleitung wie man die neue Version installiert.

 

Gruss

Jens

Hier ist der Thread:

Wenn du keine möglichkeit hast nodezu zu updaten kannst auch die Gruntfile überschreiben und die von 5.1 nehmen https://raw.githubusercontent.com/shopware/shopware/5.1/themes/Gruntfile.js

Wenn ich das Grundfile nehme, dann bekomme ich folgende Fehlermeldung:

[09:42] chipotle /var/customers…/themes # grunt                                                                                                                                                                    0
>> Local Npm module „grunt-contrib-watch“ not found. Is it installed?
>> Local Npm module „grunt-contrib-jshint“ not found. Is it installed?
Warning: Task „watch“ not found. Use --force to continue.

Aborted due to warnings.

@nnwebdesign schrieb:

Wenn ich das Grundfile nehme, dann bekomme ich folgende Fehlermeldung:

[09:42] chipotle /var/customers…/themes # grunt                                                                                                                                                                    0
>> Local Npm module „grunt-contrib-watch“ not found. Is it installed?
>> Local Npm module „grunt-contrib-jshint“ not found. Is it installed?
Warning: Task „watch“ not found. Use --force to continue.

Aborted due to warnings.

Ja, da stehts doch schon: Er kann den das npm Modul grunt-contrib-watch und grunt-contrib-jshint nicht finden. Als Quickfix kannst Du einfach die beiden Zeilen mit dem grunt.loadNpmTasks für die beiden Plugins löschen. Und natürlich auch den die beiden Objekt Keys in der grunt.initConfig für das jeweilige Plugin. 5 Minuten googeln hätte Dich auch auf die Lösung gebracht…

Tut mir leid, da hast du Recht - mit der neuen Gruntfile.js-Datei hätte ich nur die npm depencies nachinstallieren müssen. Damit funktioniert es nun auch. Aber warum funktioniert das alte Gruntfile nicht? Auch nachdem ich die beiden Pakete nachinstalliert habe, funktioniert es nicht…

Benutzt Du Windows? Dann google mal nach dem node-gyp Problem und hole dir die Windows Build Tools und installiere dann node-gyp neu. Den Fehler hatte ich auch neulich, ist wohl aktuell ein Bug oder so in npm selbst. Musste ich bisher schon auf jeder Windows Kiste machen, die irgendwas mit Grunt machen will.

Also in der Admin PowerShell folgendes ausführen:


npm install -g windows-build-tools

Danach


npm install -g node-gyp

sollte dein Problem lösen.

führ einfach nochmal in den ordner npm install aus. node-gyp brauchst du nicht