Usando o grunhido para concatinar muitos arquivos de vários diretórios em um único arquivo renomeado no novo diretório

Eu tenho um projeto Angular com potencialmente muitos módulos. Cada módulo possui seu próprio diretório com subdiretórios para controladores, diretivas, serviços, etc. Algo assim:

src
|-- js
    |-- modules
        |-- moduleOne
            | module.js
            |-- controllers
                | listController.js
                | detailController.js
            |-- directives
                | listItem.js
                | summaryWidget.js
            |-- filters
            |-- services
                | moduleService.js

Minha compilação essencialmente agrupa e compila arquivos do src / e coloca no dev /, depois minimiza os arquivos no dev / e passa para o prod /. Durante o dev, o servidor aponta para a pasta dev / e, em produção, o servidor aponta para a pasta prod / (também porque os arquivos terminam em .min.js, apesar de serem apenas compilados / concatenados). Este processo está funcionando bem.

Atualmente, minha tarefa concat é pegar todos os arquivos no moduleOne / e criar um único arquivo moduleOne.js no meu diretório dev. É isso que eu quero que aconteça, mas de forma mais dinâmica:

concat: {
    modules: {
        files: {
            "dev/js/modules/moduleOne.min.js": [
                "src/js/modules/moduleOne/*.js",
                "src/js/modules/moduleOne/**/*.js"
            ],
            "dev/js/modules/moduleTwo.min.js": [
                "src/js/modules/moduleTwo/*.js",
                "src/js/modules/moduleTwo/**/*.js"
            ]
        } 
    }
}

O problema é que eu tenho que fazer isso para cada módulo, mas acho que não precisaria.

Eu tentei fazer o seguinte, porque é o que eu quero fazer:

concat: {
    modules: {
        files: [{
            expand: true,
            cwd: "src/js/modules",
            src: "**/*.js",
            dest: "dev/js/modules",
            ext: ".min.js"
        }]
    }
}

Mas o resultado foi todos os meus arquivos e estrutura de diretórios movidos de src / para dev /. Eu basicamente usei concat para fazer uma cópia, não é útil.

Eu gostaria de fazer algo assim:

concat: {
    modules: {
        files: [{
            expand: true,
            cwd: "src/js/modules",
            src: "**/*.js",
            dest: "dev/js/modules/<foldername>.min.js",  <- how do I achieve this?
        }]
    }
}

Eu tenho lido muito, mas parece que só chego perto de encontrar a resposta e estou tendo problemas para montar os conceitos. Muito do que encontro são apenas arquivos únicos em um novo diretório, com uma renomeação. Eu gostaria de vários arquivos em um único arquivo em um novo diretório com uma renomeação. Porque é assim que eu rolo :)

questionAnswers(1)

yourAnswerToTheQuestion