私は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 など。
ありがとう!