gulpでディレクトリ構造を維持したままdestにコピーする
gulp
で以下のようなフォルダ構成で、page.html
、page2.html
をそれぞれのフォルダ配下のフォルダにコピーする場合、普通にdest
を指定するだけではうまくいかないことがあります。
- src
- A
- page.html
- dest
- ここに出力
- B
- page2.html
- dest
- ここに出力
- A
以下のようなタスクでは「**」フォルダが作成されてしまうため、うまくコピーができません。
gulp.task('copy', function(){
return gulp.src('src/**/*.html')
.pipe(gulp.dest('src/**/dest')); //「**」フォルダができてしまう
});
gulp-rename
コピーするためには、いろいろとやり方があるかもしれませんが、gulp-rename
を使用して、出力先のディレクトリを変更しました。
var rename = require("gulp-rename");
gulp.task('copy', function(){
return gulp.src('src/**/*.html')
.pipe(rename(function (path) {
path.dirname += '/dest';
}))
.pipe(gulp.dest('src'));
});
簡単なようで、意外とハマってしまう処理かもしれません。