2017-02-26 131 views
0

我在我的React/Redux/Webpack項目中添加了Flow,最初它很棒,我喜歡類型註釋。隨着時間的推移,我注意到項目的啓動時間變得非常慢 - 大約在120s左右;它曾經是20多歲。經過調查,我意識到這是因爲Flow正在掃描node_modules中的所有JS文件。流程需要很長時間才能啓動,因爲它會檢查node_modules

我試圖通過添加忽略.flowconfignode_modules

[ignore] 
.*node_modules/.* 

啓動快再次成爲流量卻會在我引入了外部庫,從我的代碼的地方抱怨Required module not found

在此Github issue中建議的解決方法是對node_modules進行flowignore,併爲外部庫手動添加接口。這似乎工作,但是當將新庫添加到項目中時,這是一個麻煩。

每次開始項目時都需要等待2分鐘,令人沮喪,有沒有更好的想法?

回答

0

避免Required module not found錯誤的一種方法是運行flow-typed install,它將從flow-typed存儲庫中爲受歡迎的庫提取現有的libdefs。它還爲無法在其中找到的庫生成存根。這對很多項目都很有用,但是在極少數情況下,不會生成Immutable.js等特定庫的存根。

我終於想出了cli命令flow-scripts來自動生成libdef存根接口,這樣我可以flowignore node_modules但不會得到Required module not found錯誤。

只需在存儲庫的根目錄運行

$ flow-scripts stub 

和libdef存根將在flow-typed目錄自動生成。

相關問題