Je souhaite remplacer un composant RequireJs uniquement à certaines conditions (par exemple, en fonction de la configuration). Existe-t-il un moyen d'empêcher par programme le chargement de mon module requirejs-config.js
ou une autre manière de le réaliser?
magento2
magento2.2
overrides
requirejs
magento2.3
Fabian Schmengler
la source
la source
Réponses:
Sur la base du commentaire @Arshad M, vous pouvez ajouter un di.xml avec:
Et dans <Vendor> \ <ModuleName> \ RequireJs \ Config.php, remplacez la fonction getConfig en ajoutant votre condition et le nom du module que vous ne voulez pas que les requirejs soient chargés (probablement depuis ScopeConfigInterface):
MISE À JOUR
Après les commentaires de @Alex et @Daniel: Vous pouvez créer un plugin after pour getFiles à partir de Magento \ Framework \ RequireJs \ Config \ File \ Collector \ Aggregated, donc le nouveau di.xml avec cette approche serait:
Et dans \ <Vendor> \ <ModuleName> \ Plugin \ RequireJs \ AfterFiles, vous pouvez définir votre condition et votre module pour que le requirejs ne soit pas chargé:
la source
aroundGetConfig()
ouafterGetConfig()
afin de réaliser le chargement conditionnel alors nous n'avons pas à l'écraser