我正在开发一个使用 Node.js 的 Web 应用程序。在这个应用程序中,我有一个 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 任务复制到多个目录。
您需要使用此处提到的 base 选项引用。它将确保您的目录按原样复制。
function copy() {
let files = [
'source/file.js',
'source/child/**/*.*'
];
return gulp
.src(files, {base: 'source/'})
.pipe(gulp.dest('dest'));
}