Использование 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?
}]
}
}
Я много читал, но мне кажется, что я только близок к тому, чтобы найти ответ, и у меня возникают проблемы с объединением концепций. Многое из того, что я нахожу, - это просто отдельные файлы в новом каталоге с переименованием. Я хотел бы, чтобы несколько файлов перешли в новый каталог с новым именем. Потому что это, как я кататься :)