我正在使用Node.js的网络应用程序。在这个应用程序中,我有一个Gulp文件。我正在使用Gulp 4.在构建过程中,我试图一次将多个文件复制到目录。我的目录结构如下所示:
./
dest/
source/
child/
index.js
index.bak
file.js
README.md
我的真实目录结构更复杂。但是,我正在尝试将./source/file.js
复制到./dest/file.js
和./source/child/index.js
复制到./dest/child/index.js
。请注意,我不想将README.md
或index.bak
复制到./dest directory
。为了做到这一点,我有以下功能:
function copy() {
let files = [
'source/file.js',
'source/child/**/*.*'
];
return gulp
.src(files)
.pipe(gulp.dest('dest'))
;
}
我的问题是,所有内容都被复制到dest
目录。目录结构不会被保留。如果我能弄清楚如何在单个任务中将文件复制到不同的目录,那就没问题了。我尝试了以下方法:
function copy() {
return gulp
.src('source/child/index.js')
.pipe(gulp.dest('dest/child'))
.src('source/file.js')
.pipe(gulp.dest('dest'))
;
}
但是,这种方法只会产生一个错误:
TypeError: gulp.src(...).pipe(...).src is not a function
所以,我被卡住了。我不确定如何从单个gulp任务中将多个文件复制到多个目录。
答案 0 :(得分:6)
您需要使用此处ref中提到的基本选项。它将确保您的目录按原样复制。
function copy() {
let files = [
'source/file.js',
'source/child/**/*.*'
];
return gulp
.src(files, {base: 'source/'})
.pipe(gulp.dest('dest'));
}