开始一个新的 Flow 项目

从第一行代码开始使用 Flow 检测是非常很不错的。 从最开始的阶段,甚至是原型设计的时候开始使用, 确保代码类型安全,减少错误的可能性,

配置你的项目#

给新项目添加 Flow,只需要在项目根目录初始化,然后让 Flow 知道要检测项目里的文件

$> mkdir new_project
$> cd new_project
$> flow init

这些命令实际上就是在根目录创建一个隐藏文件 .flowconfig。 你可能注意到,之前的每个例子里面都有这个文件。

一旦有了 .flowconfig,你就可以立刻检测根目录以及所有子目录的代码

$> flow check

这个命令虽然可行,不过不是 最高效 的用法。 这个命令会让 flow 每次都把项目下所有文件检查一遍。 我们建议你用下面这种 flow 后台服务代替:

使用 Flow 后台服务#

对于大型项目来说,你应该不希望每次改文件都让 Flow 立刻检查所有文件。 Flow 使用 c/s 架构设计,于是你就可以先开启一个 Flow 后台服务, 当你文件改变时,Flow 就在后台默默地检测。命令很简单:

$> flow   # 开启一个后台服务,输出首次检测结果

下次使用同样的命令查看后台服务的检测状态:

$> flow   # 连接正在运行的后台服务,输出检测结果

一旦你修改某些文件,你可以快速运行这个命令,查看检测结果:

$> flow   # 连接后台服务 (或者开启) 然后输出检测结果

使用带后台服务的 flow 命令,避免每次修改都触发项目所有文件的检查,节省时间, 提高工作效率 - 更不用说与IDE和其他工具更好地整合。

当你的代码写好了,你就可以关掉这个后台服务:

$> flow stop

检测文件#

跟之前教程的例子一样,你需要把这行注释:

/* @flow */

添加到待检测文件中。 由于 Flow 会忽略掉不带注释的文件,所以不必马上给所有文件都加上首行注释。 毕竟这个机制让你在项目中使用 Flow 时,能够一次处理一个文件, 慢慢过渡,这就是 typing gradually 的好处。

当然,你可以强制 Flow 检测所有的文件,不管文件有没有 @flow 注释,带上 --all 参数就行了

$> flow check --all

不过还是要慎用呀,特别是在一个大项目,或者是项目中有很多第三方库的。 检测器会找到巨多错误,然后你就崩溃吧。

想在老项目中立刻用 Flow 检测然后改 bug,靠谱一点的话,还是 一个个文件弄吧。

阅读 在已有的代码上跑 Flow 了解更多关于检测现存代码的内容吧

常见错误#

当 Flow 运行检测出错误后,可以参考 干掉错误 中的常见错误和解决方法。 你的目标就是让错误数为 0,然后继续开发。

某些时候,错误可能是由于 Flow 内部解析不当引起的,也就是说, Flow 有时候不靠谱,这时候,你可以考虑重构你的代码让 Flow 更好 地解析,或是使用 any 类型来告诉 Flow,某些地方的类型不需要检测

← Prev Next →

You can edit this page on GitHub and send us a pull request!