今天继续说说gulp的watch,可以自动搞定很多事情,不用每次都去敲命令了!
上次说到用gulp可以很方便的进行css,js,html的压缩。并且可以对coffee和scss进行编译。
css,js,html一般在发布production时候压缩一次就可以,也就是敲一次gulp命令。但是coffee和scss这两个dev时候会不时改动的文件,如果每次改动完,都需要手动去敲gulp进行编译就有些麻烦了。
那么问题来了!
如果能够每次改完coffee和scss就能自动编译成js和css将是一件多么令人happy的一件事情!
Gulp不会让你失望,当然提供了解决方案。那就是watch。
watch其实比较简单,就是一直监视某些文件是否变了。如果变了,那么进行一些操作。
吃个栗子。
gulp.task('watch', ['coffee'], function(){
gulp.watch('app/assets/coffee/*.coffee', function (event) {
gulp.src(event.path)
.pipe(coffee({bare: true}).on('error', gutil.log))
.pipe(gulp.dest('app/assets/javascripts'));
});
});
已上的代码是自动把coffee转js的作用。意思是,创建一个task,名字叫watch(当然这个名字你随便起)。内容是先执行我自己前面创建的叫coffee的task。然后进行watch所有的coffee文件。如果coffee文件有变化,则针对变化的文件,进行一次compile,生成新的js到javascripts目录。
就是这么简单,就是这么任性,就是这么强大!