Schließen Sie custsule Js von der Minimierung von Js in Magento2 aus
7
Ich versuche, JS in zu minimieren Magento 2.
Im Backend gibt es eine Option: Stores -> Configuration -> Advanced -> Developer, um js zu minimieren. Ich habe das getan und JS wurde minimiert, aber es enthält auch das JS meines benutzerdefinierten Moduls.
Es sollte mein benutzerdefiniertes Modul JS nicht enthalten, da es bereits minimiertes JS enthält. Ich möchte diese JS von der Minifizierung ausschließen.
In Ihrem benutzerdefinierten Modul möchten Sie einen Interceptor hinzufügen \Magento\Framework\View\Asset\Minification::getExcludes, der die Dateien festlegt, die von der Minimierung ausgeschlossen werden sollen.
Dies wird funktionieren , ist aber eine schlechte Lösung, da es die Standardeinstellung (tiny_mce)
ändert
@ Navarr Ich glaube nicht, dass es tut? Wenn ich richtig bin, werden die Werte jedes XML-Knotens minify_exclude als Array von \ Magento \ Framework \ App \ Config
@ Navarr Ich habe es getestet und kann bestätigen, dass Sie richtig sind. Der Standardwert tiny_mce wird überschrieben. Wenn mehrere Module diese Methode verwenden, führt dies mit Sicherheit zu Konflikten.
Milan Simek
1
@ Rob das könnte tatsächlich der Fall sein. Meine Tests zeigten, dass Navarr korrekt ist, als er darauf hinwies, dass ein Abfangjäger anstelle von config.xml verwendet werden sollte
Milan Simek
1
Sie müssen den Wert von 'dev / js / minify_exclude' auf core_config_dataeine Liste ignorierter Skripte aktualisieren (Pipe getrennt).
Beachten Sie, dass es sich praktisch um ein Regex-Muster handelt, das Magento verwendet, um Skripte von der Minimierung auszuschließen.
Daher kann es zum Beispiel so aussehen:
Danach müssen Sie alle Caches und Pub / Static-Dateien leeren und den statischen Inhalt erneut bereitstellen.
* Sie können auch die Datei pub / static / frontend / {Vendor} / {Theme} / {Locale} /requirejs-min-resolver.min.js überprüfen und Ihre Liste in der Datei url.match (...) anzeigen.
Die einfachste Lösung besteht darin, Ihre Dateien so umzubenennen, dass sie mit * .min.js enden. Dies ist ohnehin eine gute Vorgehensweise. Magento erkennt die Dateien als bereits minimiert und überspringt sie.
Seit Magento 2.3 ist es nun möglich, zusätzliche Ausschlüsse über ein Modul
etc/config.xml
mit folgender Syntax zu definieren:Alle diese Werte werden jetzt mit dem vorherigen Wert zusammengeführt, anstatt ihn zu überschreiben.
Die Pull-Anforderung für diese Änderung finden Sie hier: https://github.com/magento/magento2/pull/13687
quelle
Dies hat bei einem anderen Problem geholfen , könnte aber hier nützlich sein ...
Fügen Sie in der Datei config.xml Ihres Moduls Folgendes hinzu:
quelle
Sie müssen den Wert von 'dev / js / minify_exclude' auf
core_config_data
eine Liste ignorierter Skripte aktualisieren (Pipe getrennt).Beachten Sie, dass es sich praktisch um ein Regex-Muster handelt, das Magento verwendet, um Skripte von der Minimierung auszuschließen.
Daher kann es zum Beispiel so aussehen:
Danach müssen Sie alle Caches und Pub / Static-Dateien leeren und den statischen Inhalt erneut bereitstellen.
* Sie können auch die Datei pub / static / frontend / {Vendor} / {Theme} / {Locale} /requirejs-min-resolver.min.js überprüfen und Ihre Liste in der Datei url.match (...) anzeigen.
quelle
Die einfachste Lösung besteht darin, Ihre Dateien so umzubenennen, dass sie mit * .min.js enden. Dies ist ohnehin eine gute Vorgehensweise. Magento erkennt die Dateien als bereits minimiert und überspringt sie.
quelle