我有一个应用程序。我的应用源代码的结构如下:
./
gulpfile.js
src
img
bg.png
logo.png
data
list.json
favicon.ico
web.config
index.html
deploy
我正在尝试使用Gulp复制两个文件:./ img / bg.png和./data/list.json。我想将这两个文件复制到deploy目录的根目录。换句话说,任务的结果应该是:
./
deploy
imgs
bg.png
data
list.json
如何编写Gulp任务来执行此类复制?令我困惑的是,我希望我的任务能够复制两个单独的文件而不是符合模式的文件。我知道如果我有一个模式,我可以这样做:
var copy = require('gulp-copy');
gulp.task('copy-resources', function() {
return gulp.src('./src/img/*.png')
.pipe(gulp.dest('./deploy'))
;
});
然而,我仍然不确定如何使用两个单独的文件来执行此操作。
由于
答案 0 :(得分:6)
您可以为每个目标目录创建单独的任务,然后使用常规" copy-resources"任务。
gulp.task('copy-img', function() {
return gulp.src('./src/img/*.png')
.pipe(gulp.dest('./deploy/imgs'));
});
gulp.task('copy-data', function() {
return gulp.src('./src/data/*.json')
.pipe(gulp.dest('./deploy/data'));
});
gulp.task('copy-resources', ['copy-img', 'copy-data']);
答案 1 :(得分:0)
您还可以使用合并流
安装依赖项:
npm i -D merge-stream
在您的gulp文件中加载依赖关系并使用它:
const merge = require("merge-stream");
gulp.task('copy-resources', function() {
return merge([
gulp.src('./src/img/*.png').pipe(gulp.dest('./deploy/imgs')),
gulp.src('./src/data/*.json').pipe(gulp.dest('./deploy/data'))
]);
});