Ich versuche etwas zu tun, von dem ich glaube, dass es möglich sein sollte, aber ich kann es wirklich nicht verstehen, nur aus der Webpack-Dokumentation.
Ich schreibe eine JavaScript-Bibliothek mit mehreren Modulen, die voneinander abhängen können oder nicht. Darüber hinaus wird jQuery von allen Modulen verwendet, und einige von ihnen benötigen möglicherweise jQuery-Plugins. Diese Bibliothek wird dann auf mehreren verschiedenen Websites verwendet, für die möglicherweise einige oder alle Module erforderlich sind.
Das Definieren der Abhängigkeiten zwischen meinen Modulen war sehr einfach, aber das Definieren der Abhängigkeiten von Drittanbietern scheint schwieriger zu sein, als ich erwartet hatte.
Was ich erreichen möchte : Für jede App möchte ich zwei Bundle-Dateien haben, eine mit den erforderlichen Abhängigkeiten von Drittanbietern und eine mit den erforderlichen Modulen aus meiner Bibliothek.
Beispiel : Stellen wir uns vor, meine Bibliothek enthält die folgenden Module:
- a (erfordert: jquery, jquery.plugin1)
- b (erfordert: jquery, a)
- c (erfordert: jquery, jquery.ui, a, b)
- d (erfordert: jquery, jquery.plugin2, a)
Und ich habe eine App (siehe sie als eindeutige Eintragsdatei), die die Module a, b und c benötigt. Webpack für diesen Fall sollte die folgenden Dateien generieren:
- Vendor Bundle : mit jquery, jquery.plugin1 und jquery.ui;
- Website-Bundle : mit Modulen a, b und c;
Am Ende würde ich es vorziehen, jQuery als global zu haben, damit ich es nicht für jede einzelne Datei benötigen muss (ich könnte es zum Beispiel nur für die Hauptdatei benötigen). Und jQuery-Plugins würden nur $ global erweitern, falls sie benötigt werden (es ist kein Problem, wenn sie anderen Modulen zur Verfügung stehen, die sie nicht benötigen).
Angenommen, dies ist möglich, was wäre ein Beispiel für eine Webpack-Konfigurationsdatei für diesen Fall? Ich habe verschiedene Kombinationen von Ladern, externen Geräten und Plugins in meiner Konfigurationsdatei ausprobiert, aber ich verstehe nicht wirklich, was sie tun und welche ich verwenden soll. Danke dir!