流程需要很长时间才能启动,因为它会检查node_modules

时间:2017-02-26 05:57:04

标签: flowtype flow-typed

我将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分钟是令人沮丧的,有没有更好的想法?

1 个答案:

答案 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目录中自动生成。