Dynamisches Mapping für Ziele in grunt.js

Ich habe ein Projekt mit mehreren Unterordnern, die JavaScript-Dateien enthalten, die ich verketten möchte. Was wäre der richtige Weg, um sie zu konfigurieren?

z.B.

Quelle: /modules/$modulename/js/*.js (mehrere Dateien) Ziel: /modules/$modulename/js/compiled.js

Ich möchte also js-Dateien mit einer unbekannten / nicht konfigurierten Anzahl von Unterordnern ($ modulename) in eine Datei pro Unterordner kompilieren.

Ist das möglich?

Die folgende Funktion (erstellt nach den Anweisungen von hereandnow78) erledigt die Aufgabe:

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 setze ich prepare modulejs in meiner standardkonfiguration vor den concat job.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage