AngularJS- und Webpack-Integration

8

Ich suche nach Hilfe bei der Verwendung von webpack für eine große AngularJS-Anwendung. Wir verwenden die Ordnerstruktur basierend auf dem Feature (jedes Feature / jede Seite hat ein Modul und sie haben Controller, Direktiven). Ich habe Webpack erfolgreich konfiguriert, um es mit Grunt arbeiten zu lassen, der ein einzelnes Bündel produziert. Ich möchte Chunks erstellen, da es eine große App wird, möchten wir Module (Seite / Feature) Artefakte asynchron laden.

Ich gehe einige Beispiele für das Webpack durch, um 'code splitting' mit require([deps],fn ) syntax zu verwenden. Allerdings konnte ich die Stücke nicht lazy-loaded bekommen. Zuerst, ich weiß nicht wo genau, ich würde diese Stücke importieren müssen, bevor AngularJS den Benutzer zur nächsten Seite leiten würde. Ich kämpfe um eine klare Trennung der Verantwortung.

Hat mich jemand auf eine Beispielanwendung von AngularJS hingewiesen, bei der Webpack zum asynchronen Laden von Controllern / Direktiven / Filtern nach jeder Route verwendet wird?

Wenige der Links, die ich befolge: Sollte ich Browserify verwenden oder Webpack zum verzögerten Laden von Abhängigkeiten in eckigen 1.x Ссылка Ссылка

    
CoderTR 21.10.2014, 00:43
quelle

2 Antworten

12

Sagar Ganatra hat einen hilfreichen Blogbeitrag über den Code geschrieben Teilen.

Überraschenderweise wird Code-Aufteilung vom eckigen Modulsystem nicht wirklich unterstützt. Es gibt jedoch eine Möglichkeit, eine Codeaufspaltung zu erreichen, indem während der Konfigurationsphase ein Verweis auf die speziellen Provider von angular gespeichert wird.

  

[...] wenn Angular die Anwendung, Funktionen - Controller, Service usw. initialisiert oder bootstrappt. sind auf der Modulinstanz verfügbar. Hier laden wir die Komponenten und die Funktionen sind zu einem späteren Zeitpunkt nicht verfügbar. Daher müssen wir die verschiedenen Provider-Funktionen verwenden und diese Komponenten registrieren. Die Provider sind nur in der config-Methode verfügbar. Daher müssen wir eine Referenz dieser Provider in der config-Funktion speichern, wenn die Anwendung initialisiert wird.

%Vor%

Nun schreiben Sie zum Beispiel in Ihre loginController

%Vor%

Definieren Sie Ihren neuen Controller langsam.

Wenn Sie auch Ihre Vorlagen lazern möchten, empfehle ich den ui-Router . Dort können Sie eine templateProvider angeben, die im Grunde eine Funktion zum Laden von Vorlagen async ist

    
Johannes Ewald 21.10.2014, 22:54
quelle
2

Dies ist ein Zitat von Ссылка

webpack ist ein Modul-Bundler, kein JavaScript-Loader. Es packt Dateien von der lokalen Festplatte und lädt keine Dateien aus dem Internet (außer seinen eigenen Chunks).

Verwenden Sie einen Javascript-Lader, ich. e. script.js

%Vor%     
Stirling 26.01.2015 17:50
quelle