Ich suche nach Best Practices und Anweisungen zum Einrichten und Integrieren von angular-cli (webpack) mit Visual Studio 2015 in MVC 5 (nicht Core).
Mir ist klar, dass hier eine ähnliche Frage gestellt wird ( wie man asp.net angular 2 Projekt mit Angular-Cli mit ASP.NET Core in Visual Studio 2015 einrichten? ), aber das war für Nur Asp.net Core. Mein Projekt konnte wegen servertechnischer Probleme noch nicht auf Core umgestellt werden.
Hier ist meine Lösung:
Behalte eine leere index.html
Führen Sie ng build aus, um index.html mit den injizierten Skripten und Stilen zu generieren
Es funktioniert perfekt für mein ASP.net MVC 5 Projekt.
Allerdings kann es nicht mit der Lazy-Ladeoperation von route arbeiten, bis publicPath unterstützt wird, da die URL für Chunk-js-Dateien aus dem Ordner "root folder not dist" geladen wird.
Zum Beispiel:
Die richtigen chunk js-Dateien sollten sein:
www.example.com/MyApp/dist/ [id] .chunk.js
Aber es wird geladen von:
www.example.com/MyApp/ [id] .chunk.js
Ich habe bereits einen PR erstellt, um pulishPath für angular-cli hinzuzufügen, um dieses Problem zu lösen.
Aktualisierung:
Die PR für publicPath wurde zusammengeführt, lazy loading ist kein Problem mehr.
Mein Ansatz zur Integration von Angular / CLI und MVC: Die Idee hier ist, die Front-End-Entwicklung Erfahrung von der MVC-Teil zu trennen, so dass Sie nicht mit einem der Visual Studio BS zu tun haben, und genießen Sie die Vorteile der Angular CLI und VS-Code.
Meine App ist eine Hybrid-App - die meisten Seiten und Hauptnavigation ist klassische MVC, aber einige Ansichten sind in der Tat einzelne Seiten-Anwendungen, wo die NG-App in eine bestehende Ansicht eingebettet ist.
ng new
) ng serve
bedient. Die Entwicklungserfahrung mit VS Code ist großartig! ng build --prod
. Dadurch werden die Bundles im Ordner dist erstellt. Eine Schluckaufgabe im MVC-Projekt ist dafür verantwortlich, die Bündel aus den SPAs dist Ordnern in die entsprechenden Ordner unter Scripts \ Frontend . Mit Task Runner wurde die Aufgabe an Before Build gebunden, sodass sie bei der Erstellung der App automatisch ausgeführt wird. Der wichtige Schluck Befehl ist:
%Vor%natürlich müssen Sie die vorhandenen Dateien usw. löschen.
In der Bundles-Konfiguration habe ich ein Bundle für die Stile und ein Bundle für die Skripte erstellt. Da die Namen der Produktbündel mit der CLI mit Hash generiert werden, verwende ich Platzhalter:
%Vor%(Beachten Sie, dass die Reihenfolge, in der Sie die Dateien zum Bundle hinzufügen, wichtig ist!)
%Vor%Fügen Sie Ihrer Ansicht nach die ng app-Direktive hinzu und verwenden Sie die Bundles:
%Vor%Ich verwende einen etwas anderen Ansatz als Chang Liu. Nach dem Ausführen von ng build-prod kopiere ich die Dateien in den Stammordner und ändere das href-Attribut in index.html so, dass es meinem virtuellen IIS-Verzeichnis entspricht.
Tags und Links asp.net-mvc visual-studio-2015 angular-cli