流程需要很长时间才能启动,因为它会检查node_modules
问题描述:
我在我的React/Redux/Webpack项目中添加了Flow,最初它很棒,我喜欢类型注释。随着时间的推移,我注意到项目的启动时间变得非常慢 - 大约在120s左右;它曾经是20多岁。经过调查,我意识到这是因为Flow正在扫描node_modules
中的所有JS文件。流程需要很长时间才能启动,因为它会检查node_modules
我试图通过添加忽略.flowconfig
node_modules
:
[ignore]
.*node_modules/.*
启动快再次成为流量却会在我引入了外部库,从我的代码的地方抱怨Required module not found
。
在此Github issue中建议的解决方法是对node_modules
进行flowignore,并为外部库手动添加接口。这似乎工作,但是当将新库添加到项目中时,这是一个麻烦。
每次开始项目时都需要等待2分钟,令人沮丧,有没有更好的想法?
答
避免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
目录自动生成。