Gostaria de substituir um componente RequireJs apenas em determinadas condições (por exemplo, com base na configuração). Existe alguma maneira de impedir programaticamente o carregamento do meu módulo requirejs-config.js
ou uma maneira diferente de alcançá-lo?
magento2
magento2.2
overrides
requirejs
magento2.3
Fabian Schmengler
fonte
fonte
Respostas:
Com base no comentário do @Arshad M, você pode adicionar um di.xml com:
E em <Fornecedor> \ <ModuleName> \ RequireJs \ Config.php, substitua a função getConfig, adicionando sua condição e o nome do módulo que você não deseja que os requirejs sejam carregados (provavelmente de ScopeConfigInterface):
ATUALIZAR
Após comentários de @Alex e @Daniel: Você pode criar um plug-in pós-getFiles a partir de Magento \ Framework \ RequireJs \ Config \ File \ Collector \ Aggregated, para que o novo di.xml com essa abordagem seja:
E em \ <Fornecedor> \ <Nome do Módulo> \ Plugin \ RequireJs \ AfterFiles, você pode definir sua condição e módulo para que os requirejs não sejam carregados:
fonte
aroundGetConfig()
ouafterGetConfig()
método, a fim de achive o carregamento condicional então não tem que substituí-lo