React NativeプロジェクトでFlowのよる型チェックが「Flow: Waitng for diagnostics」と表示され実行されない場合の対処方法

概要

React NativeのプロジェクトをReact Native CLIで新規作成し、Nuclideで開発を始めると以下のように「Flow: Waitng for diagnostics」と表示されFlowによる型チェックが実行されませんでした。

f:id:horie1024:20170202130724p:plain

この記事は型チェックが正常に動くまで行ったことのメモです。

対処方法

1. Flowのバージョンを最新に更新

Flowのバージョンが0.37.4であったので最新に更新します。

$ brew upgrade flow
$ flow version
Flow, a static type checker for JavaScript, version 0.38.0

Flowのバージョン最新にした結果問題は解決せず、Flowのバージョンが問題ではありませんでした。

2. .flowconfigを更新

ReactNativeプロジェクトの.flowconfigを確認します。今回作成したプロジェクトでは以下のようになっていました。

[version]
^0.36.0

どうやら.flowconfigで指定したバージョンとローカルにインストールしたFlowのバージョンが異なっていたのが原因のようです。

指定するバージョンを^0.38.0に変更します。

[version]
^0.38.0

Nuclideをリスタートすると正常に型チェックが動作しました。

f:id:horie1024:20170202130639p:plain

まとめ

  • .flowconfigでFlowのバージョンを指定する場合ローカルのFlowのバージョンと合わせる
  • Flowのバージョンが古い事は直接の原因では無かったが、常に最新のバージョンを使う用にする
    • 問題が発生した時に原因を切り分けやすくなる

参考