我正在尝试使用gulp
将文件从一个文件夹复制到另一个文件夹one.css
以上代码正在复制two.css
& public/assets/css
到gulp.src('./source/css/*.css')
文件夹
如果我使用public/assets/css
,它会将所有CSS文件复制到{{1}}文件夹,这不是我想要的
我的问题是如何选择多个文件并保留文件夹结构?
答案 0 :(得分:121)
要实现此目的,请指定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
答案 1 :(得分:2)
我使用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.
答案 2 :(得分:-3)
gulp.task('move-css',function(){
return gulp
.src([ 'source/**'], { base: './' })
.pipe(gulp.dest('./public/assets/css/'));
});
调用'source/**'
时,您自己的代码未包含源{base:'./'}
和基础gulp.src
的整个目录树,这导致函数失败。
其他地方还可以。
gulp.task('move-css',function(){
return gulp.src([
'./source/css/one.css',
'./source/other/css/two.css'
]).pipe(gulp.dest('./public/assets/css/'));
});