Best Practice für Browserify in großen Webprojekten - Gulp

8

Hier ist die Sache,

Ich komme aus einer Welt, in der mehrere js-Dateien auf einer Webseite enthalten sind. Einige sind immer in der Seite enthalten (Ihre Bibliotheken, Menü usw.) und andere sind abhängig von der aktuellen Seite (js für Anmeldeseite, js für Abonnement usw.) ..). Grundsätzlich sagen wir, dass ich 1 verschiedene js-Datei pro Seite plus die libs habe.

Nun möchte ich ein neues Projekt mit browserify starten und stehe vor einem großen Problem:

  • In allen Beispielen, die ich gesehen habe, gibt es immer einen einzigen Einstiegspunkt (wie app.js).
  • In meinem Fall hätte ich n Einstiegspunkte (1 pro Seite).

Meine Fragen sind also :

  • Ist es gegen gute Praktiken, einen Einstiegspunkt pro Seite zu haben? Warum ?
    • Falls ja: Was ist die bewährte Vorgehensweise zum Durchsuchen einer großen App mit vielen seitenspezifischen JS?
    • Wenn nein , wie man das mit Gulp automatisiert. In jedem Beispiel habe ich gefunden. Sie müssen den Namen jeder Datei kennen und sie nacheinander bearbeiten. (Was in einem großen Projekt mit hunderten Seiten zum Beispiel sehr nervig ist)
  • Wie gehen Sie in Ihren Projekten damit um? Muss ich meinen Umgang mit seitenspezifischem JS-Code komplett überdenken?
ZarkDev 11.11.2014, 09:17
quelle

2 Antworten

4

Es hängt von Ihrem speziellen Fall ab. Browserify wird oft für Single-Page-Apps verwendet, bei denen ein einzelnes Paket oft die beste Lösung ist. Sie verwenden es in einer nicht einseitigen Anwendung.

Ich sehe zwei Möglichkeiten:

  1. Bündeln Sie alles zusammen . Wenn Sie eine relativ kleine App haben, ist dies die einfachste und vielleicht effizienteste Lösung (wegen Browser-Caching). Fügen Sie einfach alle Ihre seitenspezifischen Module zusammen mit Ihren anderen ein.

  2. Erstellen Sie separate Bundles . Sie können ein Bündel für jede Seite oder ein Bündel für Gruppen verwandter Seiten erstellen. Browserify erstellt für jedes Paket eine separate Datei und Sie können sie unabhängig auf jeder Seite einfügen.

%Vor%

Sie können weiterhin require() für alle Module verwenden.

Sie können das Javascript jeder Seite in ein separates Verzeichnis aufteilen und damit den Schluck automatisieren. Mit Schluck könnte es etwa so aussehen:

%Vor%

Erstellen Sie eine separate Aufgabe zum Durchsuchen Ihres gemeinsamen Bundles.

    
Justin Howard 11.11.2014, 18:28
quelle
2

Danke für Ihre Antwort. Es bringt mich auf den richtigen Weg. Nach vielen anderen Recherchen fand ich das genaue Skript, das ich benötigte, um mehrere Einstiegspunkte-Dateien zu browsen, ohne sie manuell auf jedem von ihnen aufrufen zu müssen:

%Vor%

Dieses Skript nimmt jede js-Datei in das JS_SRC-Verzeichnis und nimmt an, dass es sich um einen browsery-Einstiegspunkt handelt.

Das hat gut für mich funktioniert.

    
ZarkDev 13.11.2014 20:39
quelle