2015-03-03 162 views
4
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/')); 

}); 

看来,我第一次运行“一饮而尽复制CSS”Gulp.js - 无法生成的文件从一个文件夹复制到另一个

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再次运行时,这次文件被复制,因为该文件已经从先前执行的命令中生成。但是当代码被用于生产时,这会超过目的。

回答

2

更改这两个任务如下

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/')); 

}); 

附加收益,这样下一个任务运行第一个运行之后,否则缩小,CSS完成之前,即使你复制CSSS运行..因此错误...

+0

好,这是一个很好的解决方案。但如果添加另一个文件在'minify-css'任务中被缩小。即使在缩小下一个文件之前它也不会返回。任何解决方案? – 2015-03-03 14:36:12

+0

不...把你所有的css缩小到gulp.src ..它会工作,因为你exphct – harishr 2015-03-04 03:51:26

+0

我的意思是,如果需要缩小另一组css文件 – 2015-03-04 03:56:30

1

我想看看这个question,因为它似乎你可能有gulp.src(['src/test/test.css])之前添加return关键字...

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])

相关问题