Ich versuche Grunzen und benötigen eine einfache Möglichkeit zum verketten meine Module
Dies ist mein erstes mal mit Grunzen und ich hätte es gern kombinieren alle meine js-Module, die jeweils eingewickelt in eine sofort ausgeführte Funktion, die eine 'use strict' - Erklärung und legen Sie Sie in einer Datei, eingewickelt in nur einer sofort ausgeführten Funktion mit nur einem 'use strict' - Erklärung.
Wie wird das normalerweise gemacht?
Ich dachte, dies wäre ein üblicher Fall? Vielleicht werde ich über die Dinge der falsche Weg ist? Soll ich mich mit einem laden des Moduls-Formate (d.h. commonjs, amd) Alle diese Dateien immer geladen werden zusammen in den browser, so dass ich eigentlich nicht stören würde, dass alle sofort Ausführung von Funktionen, wie Menschen in der Regel gehen über es. Der wichtige Teil ist, dass das Endergebnis irgendwie gewickelt, geht Fussel-und unit-tests und enthält das 'use strict' - Erklärung.
(Ich sollte klarstellen, ich habe es zu arbeiten, linting, unit-testing, verketten und minifying, es fühlt sich an wie ich etwas Falsches Tue, wenn ich sehe einen Haufen von unnötigen sofort Ausführung von Funktionen in der endgültigen Datei verkettet.)
Du musst angemeldet sein, um einen Kommentar abzugeben.
Normalerweise mache ich es wie die jQuery-team hat es. Erstellen Sie eine
intro.js
undoutro.js
und alles dazwischen:intro.js
outro.js
grunt.js:
Als der pull-request 10, grunt-contrib-concat hat jetzt eine
footer
option. Statt eines intro und eines outro-Datei, die ich benutzen würde ein banner und ein Fußzeile.Gruntfile.js
Meiner Meinung nach, ist dies mehr wartbar und ermöglicht templating mit anderen Eigenschaften definiert, die in Ihrer Gruntfile.
Will einfach hinzufügen @elclanrs Antwort, dass, wenn Sie wollen in der Lage sein, um Ihre Module in separaten Dateien erleichtert das debugging während der Entwicklung, Sie würde sich natürlich einwickeln von Ihnen mit
intro.js
undoutro.js
als gut. Mit dem built-inconcat
Aufgabe, die Sie haben würde, etwas zu schreiben wie:Was sehr mühsam ist und selbst-Wiederholung. Vielleicht möchten Sie möglicherweise erstellen Sie eine benutzerdefinierte Aufgabe für Masse-wrapping-Dateien, wie z.B.
Es wurde eine Frage über das kürzlich, siehe diesen thread:
Mit grunt concat, wie kann ich das automatisieren der Verkettung der gleichen Datei in vielen anderen Dateien?
//<--intro
und alles nach einem//outro-->
...?Ich würde Ihnen empfehlen, meine grunt-plugin grunt-concat-deps da es automatisch behebt, Ihre Module unabhängig von Ihrer Architektur.
PLUS: Sie brauchen keine explizite Modul-Konfiguration für das plugin, wie es stützt sich auf deklarative und dezentrale module-definition in einer YUIDoc Stil.
Finden Sie hier weitere Informationen: https://github.com/leoselig/grunt-concat-deps