我将Flow添加到我的React / Redux / Webpack项目中,最初,它很棒,我喜欢类型注释。随着时间的推移,我注意到项目的启动时间变得非常缓慢 - 大约120秒;它曾经是20多岁左右。经过调查,我意识到这是因为Flow正在扫描node_modules
中的所有JS文件。
我尝试通过添加:
来忽略node_modules
中的.flowconfig
[ignore]
.*node_modules/.*
启动再次变得快速,但Flow会在我从代码中导入外部库的地方抱怨Required module not found
。
此Github issue中建议的解决方法是对node_modules
进行flowignore并手动添加外部库的接口。这似乎有效,但在将新库添加到项目中时,维护是一件麻烦事。
每次启动项目时都要等待近2分钟是令人沮丧的,有没有更好的想法?
答案 0 :(得分:1)
避免Required module not found
错误的一种方法是运行flow-typed install
,它将从flow-typed存储库中获取流行库的现有libdef。它还为无法在其中找到的库生成存根。这适用于许多项目,但在极少数情况下,某些库(如Immutable.js
)的存根未生成。
我最终想出了cli命令flow-scripts来自动生成libdef存根接口,这样我就可以发送node_modules
但不会出现Required module not found
错误。
简单地运行
$ flow-scripts stub
在存储库的根目录中,libdef存根将在flow-typed
目录中自动生成。