有了gulp我想在处理之前将一些文件从一个地方复制到另一个地方。为了演示我的问题,我创建了以下gulpfile.js
var gulp = require('gulp');
var copy = require('gulp-copy');
var debug = require('gulp-debug');
gulp.task('default', function () {
gulp.start('copy', 'list');
});
gulp.task('copy', function () { // copy files
gulp.src('source/*')
.pipe(gulp.dest('target'));
});
gulp.task('list', function () { // list all copies files
gulp.src('target/*')
.pipe(debug({title: 'file:'}));
});
现在,当我运行gulp时,我得到以下输出:
testing [master●●●] % gulp
[20:34:57] Using gulpfile ~/WebstormProjects/testing/gulpfile.js
[20:34:57] Starting 'default'...
[20:34:57] Starting 'copy'...
[20:34:57] Finished 'copy' after 4.92 ms
[20:34:57] Starting 'list'...
[20:34:57] Finished 'list' after 1.84 ms
[20:34:57] Finished 'default' after 7.77 ms
[20:34:57] file: 0 items
如您所见,列表任务未在target
目录中看到任何文件。现在当我再次运行任务时,最后两行是:
[20:35:00] file: target/copyme
[20:35:00] file: 1 items
正如您在第一个日志中看到的那样,copy
任务在list
任务继续之前开始并结束。但是,因为列表任务没有看到target
目录中的任何文件,所以我假设复制任务是异步的。有什么建议我可以在这里同步吗?
对于想要复制的人,这是我的package.json
{
"dependencies": {
"gulp": "^3.8.11",
"gulp-copy": "0.0.2",
"gulp-debug": "^2.0.1"
}
}
答案 0 :(得分:2)
为什么不使用gulp的内置依赖管理?
var gulp = require('gulp');
var copy = require('gulp-copy');
var debug = require('gulp-debug');
gulp.task('default', ['list']);
gulp.task('copy', function () { // copy files
return gulp.src('source/*')
.pipe(gulp.dest('target'));
});
gulp.task('list', ['copy'], function () { // list all copies files
return gulp.src('target/*')
.pipe(debug({title: 'file:'}));
});