Wie sollte die Bündelung auf Projektebene für Nicht-SPA-Anwendungen gehandhabt werden?

9

Ich lerne browserify und versuche zwei grundlegende Dinge damit zu tun:

  1. Transformieren Sie (über Shim) Nicht-CommonJS-Module für Benutzerfreundlichkeit und Abhängigkeitsverfolgung
  2. Bündeln Sie die Bibliotheken, die projektspezifisch sind

Ich habe einen Arbeitsprozess gefunden, wie ich all das machen und es mit Gulp automatisieren kann. Das funktioniert und produziert die richtige Ausgabe, aber ich bin neugierig, ob es einfacher gemacht werden könnte. Es sieht so aus, als müsste ich viele Konfigurationen in den projektbasierten Paketen duplizieren. Hier ist das Arbeitsbeispiel:

package.json
Zur Klärung hinzugefügte ungültige Kommentare

%Vor%

config.js
enthält alle task-runner-bezogenen Konfigurationseinstellungen

%Vor%

shared-bundle.js
fungiert als Bündelungsdatei, in der der Knoten die Abhängigkeiten lädt und zu diesem Zeitpunkt das Shim angewendet wurde

%Vor%

browserify-task.js
enthält die browserful buffing gulp-Aufgabe

%Vor%

In config.js , wo die bundleConfig des ersten entries Elements eine Quelle für eine Datei mit den require() -Modulen ist, möchte ich diese durch Modulnamen von Modulen ersetzen, die in package.json% co_de definiert sind % Schlüssel.

In browser , wenn ich die Bündelkonfiguration in:

ändere %Vor%

und führen Sie die gulp-Task aus. Sie enthält bootstrap.js, aber sie führt die shim-Umwandlung nicht aus. jQuery wird überhaupt nicht einbezogen.

Das hinterlässt mir ein paar Fragen:

  • Gibt es eine bessere Möglichkeit, meine js für die Verwendung in einer Nicht-SPA-Anwendung zu bündeln (zB gehe ich das falsch an)?
  • Wenn nicht, gibt es eine Möglichkeit, sicherzustellen, dass die Shim-Umwandlung vor der Bündelung ausgeführt wird, damit ich meine Bundle-Konfiguration an einem Ort haben kann?
Carrie Kendall 17.12.2014, 23:12
quelle

1 Antwort

1

Sicher, du musst deiner Schluckakte nur sagen, dass sie sich zuerst abschirmen soll. Sieht so aus, als könntest du dein eigenes Objekt shim beim Aufruf von browserify aus deiner Schluckdatei hinzufügen. Sehen Sie sich dieses Beispiel

an

Wenn Sie sicherstellen möchten, dass vor der Bündelung alles geglättet wird, verwenden Sie deps Array: "Ein Array von Aufgaben, die ausgeführt und abgeschlossen werden müssen, bevor Ihre Aufgabe ausgeführt wird."

Es würde ungefähr so ​​aussehen:

%Vor%     
Keenan Lidral-Porter 29.12.2014 19:54
quelle