Javascript Datei einbinden

Liebes Forum,

nach einigen Tutorials probiere ich mein erstes Javascript aus.

In themes\Frontend\MyTheme\Theme.php habe ich folgendes ergänzt:

**protected**  **$javascript** = **array** ( **'src/js/** mytheme **.js'** );

Und das Script in themes\Frontend\MyTheme_public\scr\js\mytheme.js:

 ;( **function** ($, window) { **"use strict"** ; console.log( **'hello world'** ); })(jQuery, window);

In der Konsole sehe ich aber nichts. Woran könnte es liegen?

Vielen Dank.

Hallo,

wahrscheinlich am Rechtschreibfehler beim Pfad (scr) oder weil der Pfad eigentlich so lauten müsste: themes\Frontend\MyTheme\frontend_public\src\js\mytheme.js .

Kompletten Shop Cache, also inklusive Theme- und Backend-Cache, geleert?

Grüße

Sebastian

Ja, das Theme neu kompiliert, dann “Einstellungen” -> “Caches / Performance” -> “shop cache leeren”. Gibt es da noch etwas?

Du meinst, dass das prinzipiell so funktionieren müsste?

Der Pfad ist richtig, ich habe es nur falsch abgetippt.

Hallo,

ich meinte nicht den schnellen Cache leeren, sondern den kompletten (“Einstellungen” -> “Cache / Perfomance” -> “Cache / Performance”), also auch inklusive Theme-Cache (am besten einfach bei “Alle auswählen” und “Leeren” anklicken) und Theme kompilieren.

Einbindung siehe die offizielle Shopware Dokumentation zu dem Thema: Using CSS and JavaScript in themes . Funktioniert auch so korrekt.

Grüße

Sebastian

1 „Gefällt mir“

Danke, - alle Häkchen gesetzt, Cache geleert, will aber immr noch nicht. Habe es im Grunde so, wie in der Doku beschrieben, gemacht.

Hast du noch eine Idee? Und das Script selbst?

Gruß

Mike

 

Hast du das Theme neu geladen, anstatt nur direkt kompiliert?

Im Theme Manager oben einmal auf „Themes neu laden“ klicken, dann nochmal das Theme zuweisen.

Davon ab ist es in der Entwicklung sinnvoll hier mit dem Grunt Task zu arbeiten, um sich das klicken im Backend zu sparen -> https://developers.shopware.com/designers-guide/using-grunt/

Mit Grunt oder der Konsole komme ich nicht weiter. Ich habe auch versucht, die Konsole irgendwie zum Laufen zu bringen. Es geht nicht. Ich vermute, dass es unter Windows nicht funktioniert. Alle Befehle, die ich dort eintippe, funktionieren nicht.

Auch Grunt scheint nicht für Windows gemacht zu sein. Jedenfalls sind die Installationen nur für Linux und Mac erklärt.

Habe ich recht?

Hm, ich habe den Rechner neu gestartet. Wieder nichts.

@10083349 Versuche mal eine andere Konsole (also nicht die Standard Console von Windows) z.B. Cmder (GitHub - cmderdev/cmder: Lovely console emulator package for Windows) oder Git for Windows mit Bash (https://git-scm.com) oder die Shell die bei node.js dabei ist (glaube grunt brauch nodejs). Alternativ einen Editor wie Visual Studio Code, der liefert so weit ich weiß node.js für Windows vorkonfiguriert aus.

@10083349 schrieb:

Und das Script in themes\Frontend\MyTheme_public\scr\js\mytheme.js:

Die js Datei liegt glaub ich im falschen Ordner die muss in    themes\Frontend\MyTheme\ frontend _public\src\js\mytheme.js

1 „Gefällt mir“

mastox - du hast recht. Es geht!

Vielen, vielen Dank.

Keine Ahnung, wieso der Pfad so schräg angehängt war.

@langnickel schrieb:

@10083349 Versuche mal eine andere Konsole (also nicht die Standard Console von Windows) z.B. Cmder (https://github.com/cmderdev/cmder) oder Git for Windows mit Bash (https://git-scm.com) oder die Shell die bei node.js dabei ist (glaube grunt brauch nodejs). Alternativ einen Editor wie Visual Studio Code, der liefert so weit ich weiß node.js für Windows vorkonfiguriert aus.

 Ich habe jetzt node.js runtergeladen und in phpStorm eingebunden.

Aber in phpStorm hae ich auch eine „Command Line Tools Console“ gefunden. Ist das so eine Konsole, von der Du schreibst?

Also wenn du deine JS und CSS Datein on the fly generieren willst brauchst du node und grunt.

Ansonsten musst du Template Cache leeren und neu Kompilieren bei jeder Änderung.

https://developers.shopware.com/designers-guide/best-practice-theme-development/

Wichtig ist wenn du grunt verwendest, ist das du in den Template Einstellungen den cache noch deaktivierst.

1 „Gefällt mir“

danke mastox, nur das ist mein Problem. In dem Link, den du mir geschickt hast, sind nur Anleitungen für Linus und MAC:

  • Install Node.js/npm on Ubuntu 14.04
  • Install Node.js/npm on Mac OS X

Dann geht es weiter mit:

  • Install the Grunt CLI

Dort soll ich in 

sudo npm install -g grunt-cl

eingeben. Ich arbeite mir PHPStorm unter Windows. Ich weiß nicht, wo ich das Kommnando eingeben kann. In die Windowskonsole geht es nicht.

Ich kenne nur PHPStorm unter Linux :wink:

Normal musst du nur node installieren Download | Node.js

Dann kannst du in der Windows Konsole Start -> Ausführen -> cmd die NPM befehle verwenden du musst nur das sudo weglassen.

1 „Gefällt mir“

Danke für den Hinweis, das sudo wegzulassen.

Jetzt funktioniert es.