玩轉gulp之watch監聽文件自動編譯


博客移至 https://www.dodoblog.cn/blog?id=5befc928e0feb34495b57035 

我們在寫頁面的時候,用到sass less等css預處理器的時候,雖然寫的很爽,但是有一個麻煩就是老是要不停的去編譯文件

例如我們寫一個variable.scss時,希望引入這個scss文件的index.scss list.scss都發生變化。可能還有很多很多。那我們應該怎么做呢

還有如果我們希望html變化了就重新編譯一下scss

 

諸如此類,ok我們現在就開始着手解決問題。

1. 我們上次講了編譯less的方法,參見如何用gulp編譯less,我們會在這個的基礎上開始講解。

2. 由於我更加鍾愛sass,我們現在回引入新的npm依賴,gulp-sass去編譯我所寫的sass文件,用法和gulp-less相同

 

解決多個sass文件同時編譯,可以用通配符*來表示所有文件

gulp.task('sass',function(){
    gulp.src('./stylesheets/sass/*.scss') //*表示所有的scss文件
        .pipe(sass())
        .pipe(gulp.dest('./stylesheets/css'))
})

會把對應的scss全部編譯成scss,而且不會去編譯對應的variable和mixin

 

但是我們不想每次改變輸入一次gulp,於是乎我們希望這些步驟可以自動完成的話,就需要用gulp的watch方法去監聽文件變化了。

我們的需求是監聽sass文件夾下的所有文件,如果發生變化就立馬執行sass任務。

gulp.task('watch',function(){
    gulp.watch('./stylesheets/**/*.scss',['sass']);
})

所以我們添加以上代碼,**是指所有深度的文件夾,包括varible和mixin

 

運行gulp watch命令實現監聽

同時如果我們也可以添加更多的監聽命令

gulp.task('watch',function(){
    gulp.watch('./stylesheets/**/*.scss',['sass']);
    gulp.watch('./index.html',['sass']);
})

例如監聽index.html頁面什么的,也去更新css文件。

我在我們就可以運用gulp完成監聽咯。我們的前端自動化大業又向前走進了一大步。啦啦啦

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM