2015-01-09 54 views
0

我在livereloadless和其他遠程服務器上使用gulp。我曾經多次成功使用過gulp,並且從未遇到過這種情況。我使用WinSCP保存/編輯文件(我雙擊該文件,並在Sublime Text中打開...我保存它,WinSCP自動將它上傳回服務器)。吞吐WinSCP - livereload或更少

但是,這樣做時gulp-less幾乎總是失敗。我編譯了兩個核心CSS文件 - 一個是Bootstrap,另一個是我自己的 - 它們都應該在修改時用它們自己的gulp任務進行編譯 - 但Bootstrap每次都會失敗,另一個文件在大約一半的時間內失敗。

當我說失敗了,這裏就是我的意思 - 用引導我總是得到同樣的錯誤:

variable @grid-columns is undefined in file ....grid.less line no. 48 

發生這種情況,即使我定義@grid-columns作爲我的主引導程序「進口」文件中的第一項。

另一個失敗的原因是livereload在編譯Less文件之前的某個點重新加載編譯後的CSS。這應該是不可能的,但它以某種方式發生。

但是,當從SSH命令提示符處輸入touch myfile.lesstouch anybootstrapfile.less時,一切正常。

顯然這是非常煩人的,但它的宜居。我認爲必須有一些方法來解決它。關於世界上可能發生的事情的任何想法以及我能做些什麼來解決它?

回答

1

很有可能當WinSCP在將文件保存到內部編輯器後上傳文件時,它會將上傳文件的時間戳設置爲比以前更早。

如果您使用的是FTP協議或Windows Vista或更早版本,這可能尤其如此。

有關詳細信息,請參閱WinSCP賦予常見問題:
Why are the changes, I upload to webserver, not visible in the web browser?

+0

這幾乎肯定是正確的答案。我想知道可以做些什麼來解決這個問題。 – user1167442 2015-01-10 23:52:27

+0

這給了我需要的東西,但是任何想看解決方案的人,請看下面。 – user1167442 2015-01-11 00:05:26

1

好吧。在Martin的幫助下,我現在認識到他是WinScp的開發人員,我已經解決了這個問題。我一直在使用gulp.wait插件,並在最終重新加載之前插入暫停 - 並且它不工作。

因爲...這不是問題所在。上傳時發生問題;因爲該文件很快就會被「觸及」(或者有時間戳的結果導致功能等值)。

所以我感動的等待過程,只是之前不太過程被稱爲像這樣:

gulp.src(src) 
.pipe(plumber({ 
    errorHandler:onError 
}) 
.pipe(wait(500)) 
.pipe(less()) 
//etc 

我要去實驗,500ms的很可能比更長needed..but不宜過長是痛苦的。這立即解決了問題。

謝謝馬丁!