开始一个新的 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,某些地方的类型不需要检测
You can edit this page on GitHub and send us a pull request!