Kann jemand ein Beispiel dafür zeigen, was gulp-angular-filesort wirklich macht und wie man es richtig benutzt?
Die Sache ist, dass ich kürzlich festgestellt habe, dass mein gulp-angular-filesort keine angularjs Dateien sortiert, jedoch meine AngularJS-App mit vielen Dateien funktioniert gut. Also, ich habe zwei Fragen gestellt:
Ich dachte, dass gulp-angular-filesort die Anweisungen angular.module betrachtet und die Dateien entsprechend der angegebenen Abhängigkeit in den Klammern sortiert. Es sieht so aus, als hätte ich mich geirrt.
Bitte sehen Sie sich mein Beispiel an.
// Datei: Gulpfile.js
%Vor%// a_services.js
%Vor%// b_controllers.js
%Vor%// c_app.js
%Vor%Das Ergebnis von gulp-inject ist folgendes:
%Vor%Ich hatte genau die entgegengesetzte Reihenfolge erwartet, um die App funktionieren zu lassen (funktioniert aber immer noch). Also, die Verwendung von gulp-angular-filesort sortiert die Dateien einfach alphabetisch, trotz aller in angular.module (..., [...]) angegebenen Abhängigkeiten
Was ist hier los?
Tatsächlich brauchen Sie in Ihrem Fall nicht gulp-angular-filesort weil Sie für jede Datei ein Modul deklarieren. Der Abhängigkeits-Injektionsmechanismus für angular wird herausfinden, wie Sie Ihre Module entsprechend Ihren Abhängigkeiten richtig aufrufen.
Sie brauchen schluck-eckigen-filesort nur, wenn Sie ein Modul über mehrere Dateien verteilt haben. Also für Ihr Beispiel, wenn alle Dateien 'myApp' als Modulnamen verwenden. Dann wird das Plugin die Dateien korrekt sortieren: immer die mit den Abhängigkeiten vor den anderen.
Hier ist Ihr Beispiel so modifiziert, dass schluckig-winklig-filesort ist benötigt:
// a_services.js
%Vor%// b_controllers.js
%Vor%// c_app.js
%Vor%In diesem Fall ist das immer noch:
gulp-angular-filesort verschiebt Dateien, die die Deklaration des Moduls enthalten, über die Dateien, in denen die Module erwähnt werden.
Wenn das Modul vor der Deklaration erwähnt wird, erhalten Sie Fehler wie diese:
"angular.js: 68 Uncaught Fehler: [$ injector: nomod] Modul 'myApp' ist nicht verfügbar! Sie haben entweder den Modulnamen falsch geschrieben oder vergessen, ihn zu laden. Wenn Sie ein Modul registrieren, stellen Sie sicher, dass Sie Abhängigkeiten als zweites Argument. "
"angular.js: 13294 Fehler: [ng: areq] Argument 'MyController' ist keine Funktion, wurde undefiniert"
Tags und Links angularjs gulp-inject