Ich versuche, den Dateianbieter / magento / module-catalog / view / base / web / js / price-box.js in meinem Design mit requirejs-config.js erfolglos zu überschreiben .
Speicherort meiner requirejs-config.js:
app / design / frontend / Mytheme / mytheme / requirejs-config.js
Inhalt meiner Datei requirejs-config.js:
var config = {
map: {
'*': {
priceBox:'js/price-box',
}
}
};
Ich habe meine neue Datei price-box.js hier abgelegt:
app / design / frontend / Mytheme / mytheme / web / js / price-box.js
Ich habe auch versucht, es unter zu platzieren:
app / design / frontend / Mytheme / mytheme / Magento_Catalog / web / js / price-box.js
aber keiner von denen funktionierte.
Im Frontend wird folgende Datei geladen:
pub / static / frontend / Mytheme / mytheme / de_DE / Magento_Catalog / js / price-box.js
Welches ist die Standard-Vendor-Datei und nicht meine? Meine Datei ist hier:
pub / static / frontend / Mytheme / mytheme / de_DE / js / price-box.js
Wir arbeiten im Entwicklermodus und im Cache deaktiviert .
Ich habe ein paar Befehle ausprobiert, um zu sehen, ob das tatsächlich helfen würde:
php bin/magento setup:static-content:deploy
php bin/magento cache:clean
php bin/magento setup:upgrade
php bin/magento setup:di:compile
Irgendwelche Vorschläge?
Verwandte Fragen:
- Magento2: Wie kann ich das Core-JS-Modul price-box.js überschreiben?
- So erweitern Sie die js-Klasse / Methode der Checkout-Modellklasse in Magento 2
- Magento 2 liest meine requirejs-config.js nicht
Offizielle Dokumentation:
Update 1
Folgende Vorschläge eines StackExchange-Benutzers habe ich gerade gemacht:
- Verschieben Sie requirejs-config.js in das Web / den Ordner meines Themas.
- Entfernen Sie manuell alles unter / pub / static / außer der .htaccess-Datei
- Führen Sie diesen Befehl aus:
php bin/magento dev:source-theme:deploy
Es hat keine Effekte gemacht, die geladene Datei bleibt:
pub / static / frontend / Mytheme / mytheme / de_DE / Magento_Catalog / js / price-box.js
Update 2 - Lösung
Wie von David Verholen vorgeschlagen, habe ich folgende Schritte ausgeführt:
- Entfernen Sie die
map
Datei aus der Datei requirejs-config.js im Stammordner meines Themas. - Platziere meine neuen Dateien
price-box.js
in:app / design / frontend / Mytheme / mytheme / Magento_Catalog / web / js / price-box.js
- Entfernen Sie den gesamten Inhalt manuell,
/pub/static/
indem Sie Folgendes tun:rm -rf pub / static / *
quelle
priceBox:
versuchen :'Magento_Catalog/js/price-box':
.Antworten:
Das Platzieren der Datei unter
app/design/frontend/Mytheme/mytheme/Magento_Catalog/web/js/price-box.js
sollte ausreichen (ohne dass eine Konfiguration erforderlich ist), um die Datei in Ihrem Design zu überladen.Versuchen Sie, wie bereits erwähnt, den Inhalt von pub / static / folder (mit Ausnahme von .htaccess) zu löschen. Auf Unix-Systemen können Sie dies mit dem Befehl
rm -rf pub/static/*
aus dem Stammverzeichnis tun, da * keine Dateien enthält, die mit a beginnen.
Wenn dies nicht funktioniert, liegt vermutlich ein Problem vor, da sich die Originaldatei in dem
base
Bereich befindet, während sich Ihr Thema in demfrontend
Bereich befindet. Logischerweise (wenn dies nicht funktioniert) kann dies ein Fehler im Überladungsmechanismus sein, da die Basis von allen Bereichen geerbt werden sollte.quelle
Inhalt von
requirejs-config.js
sollte sein:Getestet in Magento 2.1.4.
quelle