Я хотел бы заменить компонент RequireJs только при определенных условиях (например, в зависимости от конфигурации). Есть ли способ программно предотвратить загрузку моего модуля requirejs-config.js
или другой способ добиться этого?
magento2
magento2.2
overrides
requirejs
magento2.3
Фабиан Шменглер
источник
источник
Ответы:
Основываясь на комментарии @Arshad M, вы можете добавить di.xml с помощью:
И в <Vendor> \ <ModuleName> \ RequireJs \ Config.php переопределите функцию getConfig, добавив ваше условие и имя модуля, который вы не хотите, чтобы requirejs был загружен (вероятно, из ScopeConfigInterface):
ОБНОВИТЬ
После комментариев от @Alex и @Daniel: Вы можете создать плагин после для getFiles из Magento \ Framework \ RequireJs \ Config \ File \ Collector \ Aggregated, так что новый di.xml с таким подходом будет:
А в \ <Vendor> \ <ModuleName> \ Plugin \ RequireJs \ AfterFiles вы можете указать условие и модуль, чтобы requirejs не загружался:
источник
aroundGetConfig()
илиafterGetConfig()
, чтобы достичь условной загрузки, тогда нам не нужно перезаписывать его