Plugin und custom.js - Änderungen sehen ohne kompilieren?

Hallo,

ich habe eine custom.js in meinen Plugin hier abgelegt:
/Resources/frontend/js/customjs. Neues Pluginsystem.

Diese wird auch erkannt und funktioniert. Cache usw. ist im Shop deaktiviert.

Jetzt zu meiner Frage: Wie kann ich diese Datei bearbeiten und Änderungen sehen ohne das Theme neu zu kompilieren?

Ich hab da sicherlich ne Kleinigkeit übersehen…
Danke für eure Hilfe.

Grunt zu installieren und konfigurieren ist wohl die Lösung.
Hat auch soweit geklappt nur macht er mir jetzt nachdem die gruntTasks gelaufen sind nach meiner custom.js sehr viele von diesen Zeichen.

 �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

Woran könnte das liegen? 
Der Watcher erkennt Änderungen in der Custom.js auch nicht.

Vielleicht hat ja jemand einen Tip für mich… :slight_smile:

Edit:
Ich glaube der Inhalt von der custom.js wurde nur einmal kompiliert. Wenn ich jetzt etwas in die Datei einfüge und grunt nochmal laufen lasse änder sich nichts.
In der config Datei vom Shop ist die custom.js aber mit drin.

Edit 2:
Wenn ich das Theme über das Shopware Backend compilieren lasse funktioniert alles wie es soll. Custom.js wird erkannt und funktioniert. Zum entwickeln aber eher ungeignet :wink:
Shopware Version ist 5.5.2
 

In der Theme.php hast du die Datei eingebunden?

Hast du die Theme Config gedumpt wie in der Doku beschrieben und danach den Grunt Task gestartet?

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

Gibt ein console.log(„bla“) was aus, wenn du es in deine custom.js schreibst ( um zu sehen, ob diese auch geladen wird ) ?

Die JS Datei hast du auch in deiner Theme.php drin wie in der Doku beschrieben -> Using CSS and JavaScript in themes ?

Theme.php hab ich die Datei nicht eingebunden. Ist eine  js Datei aus einem Plugin.

Theme Config hab ich gedumpt und die js Datei ist auch als letztes dort eingetragen.

Hallo @schnickschnack‍

arbeitest du zufällig unter Linux? Dort ist es bekannt, dass der Grunt Prozess leider nicht immer alle Änderungen mitbekommt. 

Viele Grüße aus Schöppingen

cool Michael Telgmann

ich hab die Installation auf einem Vagrant unter Linux laufen. Das stimmt.

 

Zum entwicklen bräuchte ich halt schon ein watcher oder wenigstens das grunt nach einem “normal” Aufruf funktioniert.

Nach ein paar Javascript änderungen immer im Backend die Kompilierung laufen lassen macht auf dauer nicht wirklich Spass.

also folgendes löst das Problem mit den vielen ���� Zeichen.

Die Problematik ist bei dem Link recht gut beschrieben:

– 

Meine Umgebung ist ein vagrant mit der Homestead Box und einer speziellen nginx Konfiguration für shopware. 
nginx Config hatte ich von hier:

Shopware und NGINX – The Cake Shop - mit ein paar Anpassungen


Jetzt müsste man nur noch irgendwie den Watcher zu laufen bringen. Falls da jemand einen Tipp hat, immer gerne

 

Also heute Abend läufts… auch wenn es nur Selbstgespräche sind :slight_smile:

Den Watcher bringt man durch folgendes zum laufen:

Datei: themes/grunt-tasks/config/chokidar.js

Dort in den Optionen usePolling:true eintragen. Sieht dann so aus:

options: {
   usePolling: true,
   spawn: falses
}

Grunt hat wohl Probleme mit Vagrant und shared folders…
Ob das jetzt die perfekte Lösung ist weiß ich noch nicht aber bei ersten Tests hat alles soweit funktioniert.

1 „Gefällt mir“

hi @schnickschnack‍,

ich stehe gerade vor der gleichen problematik. ich nutze eine vm in vagrant und auch bei mir werden änderungen nicht getrackt. grunt läuft allerdings direkt in der VM. auch mit dem “usePolling” werden änderungen nicht erkannt.

in einem 5.2.26er shop funktioniert das ganze mit grunt einwandfrei.

gibt es dazu noch eine andere idee das zum laufen zu bringen?

Danny

mit shopware-backend Einstellungen -\> Theme Manager -\> Einstellungen -\> Compiler Caching deaktivieren sollten alle javascript datein bei jeden request neu „compiliert“ werden. oder geht es hier um was anderes?

ps. kann sein das man andere shopware-backend und/oder config.php dazu braucht. aber in meine lokalen dev system werden alle php und javascript bei jeden request neu „compiliert“/gecached. (und dank php 7.x ist auch nicht mehr so langsam)

moin @wontfix‍,

ja, die einstellung ist bekannt aber auch sehr zeitaufwendig. so dauert es gute 2 min bis die seite neu geladen wurde. deshalb wollte ich das ganze lieber mit grunt machen wenn ich javascript baue.

Danny

@DannyDan schrieb:

moin @wontfix‍,

ja, die einstellung ist bekannt aber auch sehr zeitaufwendig. so dauert es gute 2 min bis die seite neu geladen wurde. deshalb wollte ich das ganze lieber mit grunt machen wenn ich javascript baue.

Danny

ist das mit vagrant und ms-windows shared folders? wenn ja, das ist sehr langsam mit shopware und seine unzähligen datein. beste lösung, mach dein shopware code auch ins vagrant und es lädt in paar sekunden (zumindest mit meine hardware).

nein, nicht mit shared folders. der kram liegt komplett im vagrant. auch grunt ist in der vm gestartet. wie bereits geschrieben, funktioniert es ja auch super mit einem  5.2.26er shop.

hmm, da muss dann was anderes faul sein. bei mir lädt firefox (in ms-windows host) shopware 5.4.6 artikel detail seite von lokalen vagrant in: 

149 requests
9.85 MB / 4.05 MB transferred
Finish: 9.70 s
DOMContentLoaded: 5.20 s
load: 7.46 s

mit allen developer optionen an die ich für shopware finden konnte.

ich würde mal debuggen wieso vagrant so lange braucht. vielleicht xdebug probieren und hoffen es explodiert nicht…

ps. mein vagrant os ist debian 9 und hardware für vagrant ist 2 x 3.30GHz, 3GB ram, und irgendein sata-ssd.

aus neugier, hab ich mal mit xdebug xdebug.profiler_enable = 1 die artikel detail seite geladen:

150 requests
9.91 MB / 4.11 MB transferred
Finish: 1.66 min
DOMContentLoaded: 1.56 min
load: 1.62 m

has du vielleicht xdebug immer aktiv?

1 „Gefällt mir“

ach mensch, ich bin auch ein honk. :slight_smile:
hab ich komplett nicht mehr auf dem schirm gehabt, dass ich irgendwann mal xdebug aktiviert und nicht wieder deaktiviert hatte.

besten dank für den hinweis!

trotzdem wäre die option mit grunt sehr nützlich.

Danny