我有一个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/文件夹,在生产中,服务器指向prod/文件夹(这也是为什么文件以.min.js结尾,即使它们只是被编译/连接而已)。这个过程很顺利。
目前,我的连接任务正在获取moduleOne/中的所有文件,并在我的dev目录中创建一个单独的moduleOne.js文件。这正是我想要发生的事情,但需要更加动态化:
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?
}]
}
}
我一直在阅读,但似乎只接近找到答案,却难以将概念整合起来。我发现的大部分只是将单个文件移到新目录并重命名。我想将多个文件合并成一个文件并移至新目录并重命名,因为这就是我的风格 :)