我对 Grunt 很陌生。我正在尝试从一个位置复制每个子目录并将每个子目录放在另一个目标目录中。我在自定义 grunt 任务中执行此操作,因为我无法确定源位置中将存在多少子目录。我面临的问题是每次执行副本时都会覆盖以前的目录结构。
我尝试将“cwd”设置为要从中复制的子目录的根目录,但问题仍然存在。
文件夹结构:
container
|
- dist/ *I want to copy each src folder here
|
GruntFile.js
subapps
|
- thing1/dist
| *I want to copy each of these dirs (thing1/dist, thing2/dist) to container/dist eg: container/dist/thing1/dist, container/dist/thing2/dist
- thing2/dist
我的任务:
grunt.registerTask('copySubApps', function () {
grunt.file.expand({filter : 'isDirectory'}, '../subapps/*/').forEach(function (subapp) {
var subAppName = path.basename(subapp);
var subAppDest = grunt.template.process('dist/subapps/<%= appName %>/dist/',{data:{appName:subAppName}});
grunt.config('subAppDest', subAppDest);
grunt.config('subAppName', subAppName);
grunt.task.run('copy:subapp');
});
});
配置:
copy: {
subapp: {
expand: true,
src: '**/*',
dest: '<%= subAppDest %>',
cwd: '../subapps/<%= subAppName %>/dist'
}
}
每个后续副本都会覆盖它之前的副本。我该如何避免这种情况?我确信这是一种非常幼稚的方法,因此非常欢迎提出建议和指导。:-) 一旦这个工作正常,我需要进一步过滤每个子文件夹中的哪些项目被复制。例如 subapps/thing1/style、!subapps/thing1/common 等。
谢谢!