Chciałbym wymienić komponent RequireJs tylko pod pewnymi warunkami (na przykład na podstawie konfiguracji). Czy jest jakiś sposób programowo zapobiec ładowaniu mojego modułu requirejs-config.js
lub inny sposób, aby to osiągnąć?
magento2
magento2.2
overrides
requirejs
magento2.3
Fabian Schmengler
źródło
źródło
Odpowiedzi:
Na podstawie komentarza @Arshad M możesz dodać plik di.xml za pomocą:
I w <Vendor> \ <ModuleName> \ RequireJs \ Config.php zastępuje funkcję getConfig dodając twój warunek i nazwę modułu, że nie chcesz, aby loadjs były ładowane (prawdopodobnie z ScopeConfigInterface):
AKTUALIZACJA
Po komentarzach @Alex i @Daniel: Możesz utworzyć wtyczkę po dla getFiles z Magento \ Framework \ RequireJs \ Config \ File \ Collector \ Aggregated, więc nowy plik di.xml z takim podejściem będzie:
A w \ <Vendor> \ <ModuleName> \ Plugin \ RequireJs \ AfterFiles możesz ustawić swój warunek i moduł, aby wymagania nie były ładowane:
źródło
aroundGetConfig()
lubafterGetConfig()
, aby uzyskać warunkowe ładowanie, więc nie musimy go nadpisywać