Gulp.js - 无法将生成的文件从一个文件夹复制到另一个文件夹

时间:2015-03-03 13:53:20

标签: javascript gulp

gulp.task('minify-css', function () {

   gulp.src(['src/test/test.css])
   .pipe(concat('test1.css'))
   .pipe(minifyCSS())
   .pipe(gulp.dest('src/source/'))
   .pipe(filesize())

});
gulp.task('copy-css',['minify-css'], function () {

   gulp.src('src/source/*.css')
   .pipe(gulp.dest('src/dest/'));

});

这似乎是我第一次运行'gulp copy-css'

Starting 'minify-css'...
[18:54:39] Finished 'minify-css' after 61 ms
[18:54:39] Starting 'copy-css'...
[18:54:39] Finished 'copy-css' after 1.86 ms

但复制操作可能不会执行,因为它甚至在未生成要复制的文件之前执行

尽管我已经提到minify-css作为copy-css任务的依赖,但在这种情况下似乎没有遵循该约定。

当再次运行gulp copy-css时,这次复制文件,因为该文件已经从先前执行的命令生成。但是,当代码在生产中使用时,这将超过目的。

3 个答案:

答案 0 :(得分:3)

更改以下任务

gulp.task('minify-css', function () {
    return  gulp.src(['src/test/test.css])
   .pipe(concat('test1.css'))
   .pipe(minifyCSS())
   .pipe(gulp.dest('src/source/'))
   .pipe(filesize())    
});

gulp.task('copy-css',['minify-css'], function () {
   return gulp.src('src/source/*.css')
   .pipe(gulp.dest('src/dest/'));

});

添加return以便下一个任务在第一个任务运行后运行,否则你的copy-csss甚至在minify-css完成之前就会运行..因此错误......

答案 1 :(得分:1)

我会查看此question,因为您可能需要在return之前添加gulp.src(['src/test/test.css])关键字...

答案 2 :(得分:1)

尝试使用on('finish')事件中的回调:

gulp.task('minify-css', function (cb) {

   gulp.src(['src/test/test.css'])
    .pipe(concat('test1.css'))
    .pipe(minifyCSS())
    .pipe(gulp.dest('src/source/'))
    .pipe(filesize())
    .on('finish', function() {
        // All tasks should now be done
        return cb();
    })

});

gulp.task('copy-css',['minify-css'], function () {

   gulp.src('src/source/*.css')
     .pipe(gulp.dest('src/dest/'));

});

PS: 您还会在最顶层的gulp.src数组中出现语法错误,这里只缺少引用' gulp.src(['src/test/test.css])