Build/js/main.js wird nicht von Grunt übernommen

Hallo OXID-Freunde,

nach über 2 Stunden erfolgloser Tests und Recherche, muss ich mein Anliegen nun einmal hier im Forum vortragen.

Situationsbeschreibung:

  • Ich habe eine OXID 6.1.2 CE - Installation und ein eigenes Theme (abgeleitet vom flow-Theme (kein Childtheme)).
  • Ich nutze das, von OXID vorgesehe Grunt zur Erzeugung der finalen Out-Dateien.
  • Ich bin der Meinung, dass ich alles richtig konfiguriert habe (eigentlich), denn wenn CSS-Änderungen vornehme werden diese in den Out/ThemeName-Ordner des Shops übernommen.
  • auch die Ziel-Datei out/ThemeName/src/js/scripts.min.js bekommt eine aktualisierte “Zuletzt geändert”-Zeit

Was will ich machen:
Ich muss eine Änderung an einer JS-Datei vornehmen, sodass sie richtig im Grunt-Compilierungs-Prozess eingebunden ist.
Konkret muss ich eine Anpassung in der
source/Application/views/ThemeName/build/js/main.js
vornehmen. (zumindest vermute ich, dass das die richtige Quell-Datei ist, denn die Inhalte dieser Datei sind in der finalen source/out/…/scripts.min.js)

Änderungen an dieser main.js werden aber beim compilieren mit Grunt nicht übernommen.
Vorab: Shop-Cache leeren führte nicht zum Erfolg

Wo liegt hier der Fehler?

  • Liegt die Quelldatei an einem anderen Ort? (kann ich mir nicht vorstellen bei den less-Dateien klappt es auch)
  • Wie kann ich dem Fehler weiter auf den “Grunt” gehen?

Danke vorab.

Nach deiner Beschreibung ist eigentlich alles richtig.

Relevant für die Inklusion von main.js sind die beiden Dateien grunt/aliases.yaml und grunt/uglify.js.

Die beiden Variable production: und development: in aliases.yaml legen fest, welche Module grunt abarbeiten soll. Der Aufruf erfolgt mit “grunt production” bzw. “grunt development”. Die dritte Variable default: legt nur fest, was gemacht wird, wenn grunt ohne Argument aufgerufen wird.

Sowohl production: als auch development: enthalten “uglify:theme”. Das “theme” ist in grunt/uglify.js definiert. Dort steht auch der Bezug auf main.js. Dadurch wird main.js inkludiert.

Vergleiche einfach die Dateien in deinem Theme mit dem original Flow.

Kontrolliere, ob bei grunt-Lauf die Meldung
Running "uglify:theme" (uglify) task
erscheint.

1 Like

Danke für die schnelle Rückmeldung. Ich konnte das geschriebene erst heute testen. Ich war gesundheitlich verhindert.

Ich hatte die ganze Zeit immer den Konsolenbefehl “grunt” zum Stanten genommen. “grunt production” scheit aber laut der yaml-Datei dabei ausgeführt zu werden. Die Zeile
Running "uglify:theme" (uglify) task
wurde in beiden Fällen während der Laufzeit ausgegeben (auch am letzten Donnerstag).

Als ich das heute noch einmal probiert habe, hat es super geklappt. Meine Anpassung in der main.js wurde diesmal mit verwurstet und kam im out-Ordner an. Ich kann mir nicht erklären, warum es letzte Woche nicht funktioniert hat. Sowohl im FF (Cache deaktiviert) als auch im Chromium wurde die Änderung nicht angezeigt.
Alles was zu heute anders ist, dass ich meinen Rechner neu gestartet habe.

Danke für die Hilfe und die Erklärungen zum besseren Verständnis.