2016-03-01 42 views

回答

1

據汽車無掃描所有給定的目錄遞歸。

:latency參數告訴它在掃描之間睡了多久。

代碼相當複雜,因爲輪詢與OSX適配器共享很多。

這裏就是目錄掃描:https://github.com/guard/listen/blob/master/lib/listen/directory.rb

這裏是哪裏的模式和修改時間被存儲結構:https://github.com/guard/listen/blob/master/lib/listen/record.rb

這裏是如何的文件系統快照的部分無效:https://github.com/guard/listen/blob/master/lib/listen/change.rb#L31

一般來說,如果有太多的大型目錄要掃描,輪詢只會很慢。這就是爲什麼最好只監視選定的目錄,並避免使用不需要編輯/修改的文件,例如大文件。例如node_modulesvendor。 Listen忽略了某些目錄的規則。

調試模式(與環境變量LISTEN_GEM_DEBUGGING=2一起設置)可以讓您深入瞭解引擎蓋下發生了什麼。

我實際上可以更詳細地回答,但我認爲現有的架構很差。

所以我寧願重寫它,使其更清晰,更易於維護。

的說明,請參見本:https://github.com/guard/listen/issues/381

+0

什麼你的意思做「其實我會回答,但我認爲現有的體系結構是窮人。」?看來你*做了*回答? –

+0

我剛修好那句話。我的意思是有更多的血淋淋的細節可能是有用的,但我寧願工作在一個更好的架構上,而不是「抱怨」聽現在如何做。讓我知道你是否想知道其他事情;) –