Ich habe ein Projekt mit mehreren Unterordnern, die JavaScript-Dateien enthalten, die ich verketten möchte. Was wäre der richtige Weg, sie zu konfigurieren?Dynamische Zuordnung für Ziele in grunt.js
z.
Quelle: /modules/$modulename/js/*.js (mehrere Dateien) dest: /modules/$modulename/js/compiled.js
Also, was ich tun möchte, zu kompilieren ist JS- Dateien einer unbekannten/nicht konfigurierten Anzahl von Unterordnern ($ modulename) in eine Datei pro Unterordner.
Ist das möglich?
die folgende Funktion (gebaut nach Anweisungen des hereandnow78) hat den Zweck erfüllt:
grunt.registerTask('preparemodulejs', 'iterates over all module directories and compiles modules js files', function() {
// read all subdirectories from your modules folder
grunt.file.expand('./modules/*').forEach(function(dir){
// get the current concat config
var concat = grunt.config.get('concat') || {};
// set the config for this modulename-directory
concat[dir] = {
src: [dir + '/js/*.js', '!' + dir + '/js/compiled.js'],
dest: dir + '/js/compiled.js'
};
// save the new concat config
grunt.config.set('concat', concat);
});
});
danach i preparemodulejs vor dem concat Job in meiner Standardkonfiguration setzen.
@ hereannow78 dieser Ansatz ist sehr gut, ich habe ganz vergessen, dass ich in der Dateistruktur lesen kann. Ich werde ein Update in die Frage stellen, welche Funktion funktioniert. – Patrick
+1 für das Vorschlagen des Verzeichnisses 'tasks'. Zu viele aufgeblähte Gruntfiles da draußen. – ZenMaster
Dies ist ziemlich alt, gibt es eine Möglichkeit, Ordner aus dem übergeordneten Verzeichnis auszuschließen? – pcnate