Comme Magento2 utilise RequireJS pour charger les scripts, et qu’il n’ya plus de dossier de skin , j’ai un problème:
Comment remplacer le fichier JS du module Magento par ma version modifiée?
Par exemple, opc-checkout-method.js, qui appartient à l'extension Magento_Checkout. Pour autant que je sache, ce n'est pas défini dans le fichier requirejs-config.js.
Mon extension est chargée après Magento_Checkout , donc ses données requirejs-config.js sont ajoutées à la fin du fichier requirejs-config résultant.
Ou devrais-je le faire d'une autre manière, sans remplacer le script entier?
javascript
overrides
magento2
requirejs
DmitryR
la source
la source
Réponses:
Il n'y a plus de dossier de skin, mais vous pouvez toujours utiliser des thèmes.
En guise de preuve de concept, j'ai utilisé votre exemple avec
op-checkout-method.js
ceci.Conditions préalables:
pub/static
dossier (supprimez le dossier pub / static / frontend)Actes:
op-checkout-method.js
fichier de son emplacement de moduleapp/code/Magento/Checkout/view/frontend/web/js/opc-checkout-method.js
dans le thème vierge pourapp/design/frontend/Magento/blank/Magento_Checkout/web/js/opc-checkout-method.js
console.log('something')
oualert('something')
dans la_create
fonction dumage.opcCheckoutMethod
widget.Résultat:
Informations connexes:
Si je lance à partir de cli
php dev/tools/Magento/Tools/View/deploy.php
(le script qui publie les ressources statiques), mon nouveau fichier js est placé danspub/static/frontend/Magento/blank/en_US/Magento_Checkout/js/opc-checkout-method.js
[MODIFIER]
J'ai trouvé un moyen de le faire via un module.
En
[Namespace]/[Module]/view/frontend/requirejs-config.js
plus ceci:Créez ensuite le fichier
[Namespace]/[Module]/view/frontend/web/js/opc-checkout-method.js
avec votre contenu.À des fins de test, j'ai cloné le fichier d'origine et viens d'ajouter à nouveau un
console.log
dans la_create
fonction.Rappelez-vous également de régénérer les ressources publiques pour l'interface.
la source
Voici le document officiel sur l'extension / le remplacement des composants JS par défaut: http://devdocs.magento.com/guides/v2.0/javascript-dev-guide/javascript/custom_js.html
Les commentaires sont les bienvenus!
la source