Ponieważ Magento2 używa RequireJS do ładowania skryptów i nie ma już folderu skórki , mam problem:
Jak mogę zastąpić plik JS modułu Magento moją zmodyfikowaną wersją?
Na przykład - opc-checkout-method.js, który należy do rozszerzenia Magento_Checkout. O ile widzę, nie jest zdefiniowany w pliku Requjs-config.js.
Moje rozszerzenie jest ładowane po Magento_Checkout , więc jego dane Requjs-config.js są dołączane na końcu wynikowego pliku Requjs-config.
Czy powinienem to zrobić w inny sposób, nie zastępując całego skryptu?
javascript
overrides
magento2
requirejs
DmitryR
źródło
źródło
Odpowiedzi:
Nie ma już folderu skórki, ale nadal możesz używać motywów.
Jako dowód koncepcji posłużyłem wam przykładem
op-checkout-method.js
i tym.Warunki wstępne:
pub/static
folderze (usuń folder pub / static / frontend)Działania:
op-checkout-method.js
plik z lokalizacji modułuapp/code/Magento/Checkout/view/frontend/web/js/opc-checkout-method.js
do pustego motywu doapp/design/frontend/Magento/blank/Magento_Checkout/web/js/opc-checkout-method.js
console.log('something')
lubalert('something')
w_create
funkcjimage.opcCheckoutMethod
widżetu.Wynik:
Powiązane informacje:
Jeśli uruchomię z cli
php dev/tools/Magento/Tools/View/deploy.php
(skrypt, który publikuje zasoby statyczne), mój nowy plik js zostanie umieszczonypub/static/frontend/Magento/blank/en_US/Magento_Checkout/js/opc-checkout-method.js
[EDYTOWAĆ]
Znalazłem sposób na zrobienie tego za pomocą modułu.
Na
[Namespace]/[Module]/view/frontend/requirejs-config.js
dodatek w tym:Następnie utwórz plik
[Namespace]/[Module]/view/frontend/web/js/opc-checkout-method.js
z zawartością.Do celów testowych sklonowałem oryginalny plik i ponownie dodałem a
console.log
w_create
funkcji.Pamiętaj również, aby zregenerować zasoby publiczne dla interfejsu użytkownika.
źródło
Oto oficjalny dokument dotyczący rozszerzania / zastępowania domyślnych komponentów JS: http://devdocs.magento.com/guides/v2.0/javascript-dev-guide/javascript/custom_js.html
Informacje zwrotne są mile widziane!
źródło