Gulp手表不会重新编译

时间:2016-01-21 12:30:49

标签: gulp

我有一个任务:

gulp.task('styles', ['cleanup'], function () { 
'use strict';
log('Compiling Less files to :' + config.temp);

return gulp
    .src(config.less)
    .pipe(less())
    .pipe(autoprefixer({browsers: ['last 2 versions', '> 5%']}))
    .pipe(gulp.dest(config.temp));
});

当我手动调用它时,此任务的工作方式与此类似。它删除config.temp中的文件(未在代码片段中显示)并重新编译less到css并将其再次放在config.temp目录中。

问题是当我尝试在gulp.watch中运行此任务时:

gulp.task('watch', function() {
    gulp.watch(config.less, ['styles']); 
});

任务再也不起作用了。我可以看到gulp接收我在较少文件中所做的更改,我看到日志输出,没有错误,但仍然没有真正发生任务。我的css输出保持不变。

任务没有真正执行的另一个迹象是gulp花费的时间;当我手动完成时需要更长的时间:

Gulp styles manual

然后当gulp watch执行相同的任务时:

enter image description here

我一直在关注一个完全相同的教程,我有一些示例文件也使用gulp.watch并且工作。

我看过一些提到gulp-watch但是我不确定和gulp.watch一样吗?

希望有人可以向我指出一些明显的错误。

2 个答案:

答案 0 :(得分:1)

有些事情要尝试:

  1. 尝试我在评论中提到的调试

  2. 在您输入源代码后立即在styles任务中添加此内容 .pipe($.plumber()) // exit gracefully if something fails after this

  3. 另外,请务必检查您的gulp版本。

答案 1 :(得分:0)

我希望我可以删除这个问题,因为显然没有任何错误:Webstorm在刷新时太慢了,所以我一直认为.css文件没有改变。我只需要等待大约45秒。对不起浪费互联网空间!