Próbuję przenieść bibliotekę z pliku/requirejs do pakietu sieciowego i natknąłem się na problem, który może być przełomem dla tego przedsięwzięcia.Żądaj plików JS dynamicznie w środowisku wykonawczym za pomocą pakietu sieciowego
Biblioteka, którą próbuję portować, ma funkcję, która ładuje i ocenia wiele modułów - na podstawie ich nazw plików, które otrzymujemy z pliku konfiguracyjnego - do naszej aplikacji. Kod wygląda następująco (kawa):
loadModules = (arrayOfFilePaths) ->
new Promise (resolve) ->
require arrayOfFilePaths, (ms...) ->
for module in ms
module ModuleAPI
resolve()
require
tutaj musi być wywołana na starcie i zachowywać się jak to miało miejsce z requireJS. Wydaje się, że Webpack dba tylko o to, co dzieje się w "procesie budowania".
Czy to jest coś, co zasadniczo nie ma znaczenia dla pakietu internetowego? Jeśli tak, czy mogę nadal używać requireJS? Jakie jest dobre rozwiązanie do dynamicznego ładowania zasobów w czasie wykonywania?
edit: loadModule może załadować moduły, których nie ma w czasie kompilacji tej biblioteki. Będą one dostarczane przez aplikację, która implementuje moją bibliotekę.
Mam podobny problem z Cordova, który używa niestandardowego programu ładującego AMD, ale moja aplikacja jest zbudowana przy użyciu pakietu internetowego. Moja aplikacja zależy od niektórych wtyczek Cordova, które są ładowane w środowisku uruchomieniowym i nie są obecne w czasie kompilacji. Próbowałem wielu rozwiązań, ale żaden z nich nie przemawiał do mnie. Chciałbym zobaczyć natywną rozdzielczość modułu webpack dla zależności "runtime". Zasadniczo wdrożenie powinno być łatwe. Pewna funkcja fabryczna, która zostanie wywołana (i zwróci obiekt/func zdefiniowane w środowisku wykonawczym), kiedy moduł jest wymagany przez jakiś inny moduł. – mauron85
Dodano prośbę o dodanie funkcji do pakietu internetowego. https://github.com/webpack/webpack/issues/5984 – mauron85