Использование grunt для объединения многих файлов из многих каталогов в один переименованный файл в новом каталоге

У меня есть проект Angular с потенциально большим количеством модулей. Каждый модуль имеет свой собственный каталог с подкаталогами для контроллеров, директив, сервисов и т. Д. Примерно так:

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

Моя сборка, по сути, связывает и компилирует файлы из src / и помещает в dev /, затем минимизирует файлы в dev / и перемещает в prod /. Во время dev сервер указывает на папку dev /, а в рабочем состоянии сервер указывает на папку prod / (также, почему файлы заканчиваются на .min.js, даже если они только скомпилированы / объединены). Этот процесс работает хорошо.

В настоящее время моей задачей concat является сбор всех файлов в moduleOne / и создание одного файла moduleOne.js в моей директории dev. Вот чего я хочу, но более динамично:

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"
            ]
        } 
    }
}

Проблема в том, что я должен сделать это для каждого модуля, но не думаю, что мне это понадобится.

Я попытался сделать следующее, потому что это то, что я хочу сделать:

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

Но в результате все мои файлы и структура каталогов были перенесены из src / в dev /. Я в основном использовал concat, чтобы сделать копию, а не полезно.

Я хотел бы сделать что-то вроде этого:

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

Я много читал, но мне кажется, что я только близок к тому, чтобы найти ответ, и у меня возникают проблемы с объединением концепций. Многое из того, что я нахожу, - это просто отдельные файлы в новом каталоге с переименованием. Я хотел бы, чтобы несколько файлов перешли в новый каталог с новым именем. Потому что это, как я кататься :)

Ответы на вопрос(1)

Ваш ответ на вопрос