這是一個很是小的Gulp使用問題,小到我都以爲上不了檯面,可是對於新手來講,仍是有參考價值和實用價值的,因而就以問答的方式簡短的描述一下。高手繞道。css
在給一個老的工程添加gulp配置的時候,爲了保證編譯打包的速度,我堅決果斷的選擇了gulp-changed插件,該插件可以實現只編譯或打包改變過文件,大大加快了gulp task的執行速度。
因而,我就根據官方文檔,添加了一行代碼:npm
.pipe(changed(DEST))
添加以後,貌似稍微變快了一點點,可是每次watch文件改動以後,瀏覽器那邊要刷好幾回才能出來正確的編譯後的結果,我一看:此事必有蹊蹺。gulp
因而,我立刻使用了gulp-debug來查看,添加了一行以下代碼,來查看每次編譯的時候都有哪些文件經過了流,是否是僅僅只有哪些變更了的文件。瀏覽器
.pipe(debug({title: '編譯:'}))
不看不知道,一看嚇一跳:基本上每次編譯的時候全部的jsx文件都從新編譯了一遍,難怪這麼慢。
spa
每次編譯的時候,只有jsx會所有從新編譯一遍,js和css文件卻不會,我的本能的以爲多是文件名後綴的緣由。
因而,又從新看官方文檔,結果在下面找到了這些:
原來,編譯先後文件名後綴若是發生改變的話,須要單獨配置的啊。。。具體緣由不探究了,留給有心人去發掘吧。
改成以下形式,問題就解決了:插件
.pipe(changed(dist,{extension:'.js'}))
這纔是正常的節奏嘛!!
debug
出現問題首先看官方文檔。3d
看文檔要看全。code