Gulpを使用して、あるフォルダーから別のフォルダーにファイルをコピーしようとしています。
gulp.task('move-css',function(){
return gulp.src([
'./source/css/one.css',
'./source/other/css/two.css'
]).pipe(gulp.dest('./public/assets/css/'));
});
上記のコードは、one.css
&two.css
をpublic/assets/css
フォルダーにコピーしています。
そして、gulp.src('./source/css/*.css')
を使用すると、すべてのCSSファイルがpublic/assets/css
フォルダーにコピーされますが、これは望んでいないものです。
複数のファイルを選択してフォルダー構造を保持するにはどうすればよいですか?
これを実現するには、base
を指定してください。
¶base -cwdに相対的なフォルダーを指定します。デフォルトは、globが始まる場所です。これは、
.dest()
に保存するときにファイル名を決定するために使用されます
あなたの場合は次のようになります:
gulp.task('move-css',function(){
return gulp.src([
'./source/css/one.css',
'./source/other/css/two.css'
], {base: './source/'})
.pipe(gulp.dest('./public/assets/'));
});
フォルダー構造:
|-gulpfile.js
|-source
| |-css
| |-other
| |-css
|-public
| |-assets
Gulp-flattenを使用し、この構成を使用します。
var gulp = require('gulp'),
gulpFlatten = require('gulp-flatten');
var routeSources = {
dist: './public/',
app: './app/',
html_views: {
path: 'app/views/**/*.*',
dist: 'public/views/'
}
};
gulp.task('copy-html-views', task_Copy_html_views);
function task_Copy_html_views() {
return gulp.src([routeSources.html_views.path])
.pipe(gulpFlatten({ includeParents: 1 }))
.pipe(gulp.dest(routeSources.html_views.dist));
}
そして、gulp-flattenに関するドキュメントを見ることができます: Link