Ich arbeite an einer alten Codeigniter-Website, wo die JavaScript-Codebasis unordentlich und schlecht strukturiert ist und ich möchte Webback verwenden, um die Skripts zu verwalten. Mein Ziel wäre es, es zu verwenden, um den Code, den ich habe, zu bündeln und ihn nach und nach zu refaktorisieren, um Module und Importe zu nutzen.So integrieren Sie Webpack in eine mehrseitige PHP-Anwendung
Im Moment verwende ich Gulp bei der Entwicklung (aber vor allem um die Dateien zu minimieren) und Carabiner (eine Codeigniter-Bibliothek), um die Skripte in die Ansichten einzufügen.
Die Skripte, die alle als IIFEs geschrieben sind, sind nicht gebündelt, also habe ich in jeder Controller-Funktion ein Array der Skripte, die auf dieser Seite benötigt werden. Zum Beispiel:
public function homepage()
{
$this->carabiner->js([
['libraryThatIOnlyNeedHere.min.js'],
['myscript1.js'],
['myscript2.js'],
['myscript3.js'],
]);
würde Ich mag Webpack verwenden, um eine Reihe von Bundles zu erstellen, so dass ich maximal zwei Dateien auf jeder Seite Laden am Ende: ein für die Bibliotheken und eine für meine Skripte.
Alle praktischen Beispiele, die ich mit Webpack gesehen habe, sind für Single Page Applications, wo es ziemlich einfach ist, alles zusammen zu bündeln.
Was wäre der beste Ansatz in meinem Fall? In Anbetracht der Tatsache, dass der Code immer noch nicht bereit ist, Module und Importe korrekt zu verwenden, soll ich viele Einstiegspunkte in der Webpack-Konfigurationsdatei erstellen, möglicherweise eine für jede Seite und jedes auf dieser Seite benötigte Skript auflisten?
Sie müssen für jede Seite ein anderes Paar Bündel erstellen, was ein echter Albtraum sein wird. Als ersten Schritt sollten Sie stattdessen 2 Bundles erstellen, 1 für allgemeine Bibliotheken und 1 für allgemeine Skripts. Dann kann jede einzelne Seite zusätzliche Skripte laden. Andernfalls besteht die einzige Option darin, für jede Route Paare von Bündeln zu haben. – apokryfos
Ein echter Albtraum, weil ich viele Einstiegspunkte definieren muss? Wenn das das Hauptproblem ist, würde ich nichts dagegen haben. Ich denke, es wäre eine Frage von ein paar Stunden – Carlo
Grundsätzlich würde eine Lösung so etwas wie "scripts.bundle.homepage.min.js" und "vendor.bundle.homepage.min.j" (Namen sind hart) und erstellen Dies ist für jede Seite, die JS benötigt. Sie können wahrscheinlich den Benutzungsgulp mit dem Webpack ändern und die Bundles als Teil Ihres Schluckprozesses erstellen. Dann müssten Sie jede Controller-Route ändern, um die Bundles anstelle der rohen Skriptdateien bereitzustellen. – apokryfos