Flow 需要很长时间才能启动,因为它会检查 node_modules
Flow takes very long to start up because it checks node_modules
我将 Flow 添加到我的 React/Redux/Webpack 项目中,最初,它很棒,我喜欢类型注释。随着时间的推移,我注意到项目的启动时间变得非常慢——大约 120 秒;它曾经是 20 多岁左右。经过调查,我意识到这是因为 Flow 正在扫描 node_modules
.
中的所有 JS 文件。
我试图通过添加以下内容来忽略 .flowconfig
中的 node_modules
:
[ignore]
.*node_modules/.*
启动速度再次变快,但 Flow 会在我从我的代码导入外部库的地方抱怨 Required module not found
。
此 Github issue 中建议的解决方法是忽略 node_modules
并手动为外部库添加接口。这似乎可行,但在将新库添加到项目中时维护起来很麻烦。
每次启动项目都要等将近2分钟,很郁闷,有没有更好的办法?
避免 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
目录中自动生成。
我将 Flow 添加到我的 React/Redux/Webpack 项目中,最初,它很棒,我喜欢类型注释。随着时间的推移,我注意到项目的启动时间变得非常慢——大约 120 秒;它曾经是 20 多岁左右。经过调查,我意识到这是因为 Flow 正在扫描 node_modules
.
我试图通过添加以下内容来忽略 .flowconfig
中的 node_modules
:
[ignore]
.*node_modules/.*
启动速度再次变快,但 Flow 会在我从我的代码导入外部库的地方抱怨 Required module not found
。
此 Github issue 中建议的解决方法是忽略 node_modules
并手动为外部库添加接口。这似乎可行,但在将新库添加到项目中时维护起来很麻烦。
每次启动项目都要等将近2分钟,很郁闷,有没有更好的办法?
避免 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
目录中自动生成。