0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

flow:checkが対象をチェックしない問題

Last updated at Posted at 2019-01-29

#はじめに
携わっているプロジェクトではflowを利用しているがほぼ使っていない。とりあえず入れて見たというノリらしく、ほんの一部のファイルをチェックしているだけという状況だった。自分にふられたタスクは他のファイルも少しづつflowでチェックしていこうというゆるーいもので、そこで問題にぶち当たった話。

#問題
flowはファイルの先頭に // @flow とかかけばそのファイルとかそこにimportされているものとかをチェックしてくれるので、部分的にチェックする際には便利。とりあえず適当なファイルを見つけて // @flow を付けて見たのだが、一向にエラーが出てこない。明らかなエラー文を入力してもエラーが出てこなかった。

#解決
configファイルを漁った。

.flowconfig
[ignore]
.*/node_modules

[options]
module.system.node.resolve_dirname=node_modules
module.system.node.resolve_dirname=src
module.ignore_non_literal_requires=true

原因としてはmodule.system.node.resolve_dirname=srcが悪さをしていた。
以下のサイトで原因はわかった。

node_modules以下に配置されたコードは、Flowの検査対象になっているコードから使用されていない限り、検査されない(つまり遅延検査される)ようになりました
Flowがエラーを表示しない、または奇妙なタイミングでエラーを表示することへの対処療法

src配下指定しちゃったので検査対象ではなくなってしまったみたい。バージョンが上がってからこうなってしまったらしいですね。
上記記事では別のjsから参照させる、みたいなことしていましたがそもそもmodule.system.node.resolve_dirname=srcをする意味がなさそうだったのでそこ消しまして、出てきたエラーたちと戦いました。大体frow-typedを追加していく作業でしたね。

#感想
flow入れてみる系記事にmodule.system.node.resolve_dirname=srcさらっと書いてあるところもあったので、そこ見たら割とやっちゃいそうなミスだなーと思う。flow自体もうTSでいいじゃん的な流れになっていそうなので、中々新しい記事見ないし…。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?