あらすじ
何時もgen-flow-filesで型自動生成してたのに、急に動かなくなった。
コンポーネントに型定義してるだけなのに何が悪いかわからない。
ただ、見た目を整えたかったから.scss
をimportした。←動かない原因だった。
先ずはざっくり使い方を書いて、最後に注意点を書きました。
gen-flow-filesの使い方
目的はライブラリとして、publishした時に型定義がしっかり効くこと。
詳しくはテストファイルを読む。
前準備
先ずは、flow stop
で稼働中のflow serverを停止。
コマンド実行
flow gen-flow-files index.js --out-dir type-definitions
コマンド実行結果
index.jsに記述されたflowの型定義が、「type-definitions」ディレクトリに「index.js.flow」として吐き出されている。
後処理
index.jsとindex.js.flowを同じ階層に置いて、publishする。
(package.jsonのfilesにきちんとpublish出来るようにファイル、あるいはディレクトリを列挙しておくこと)
https://docs.npmjs.com/files/package.json#files
注意点
-
// @flow
で型定義したファイルにjs
jsx
mjs
json
以外の物を含めないこと。 -
.flowconfig
で.css
.scss
をignoreしたからって、flowは無視してくれない。 -
.css
.scss
をimportしたければ、suppress_commentを適用しなければいけない。(.flowconfigでカスタマイズ可能) - エディタを開きっぱなしで、
gen-flow-files
を実行しても動作しない可能性が高い。(エディターとgen-flow-files
で、どちらかがflow server
を占拠している??)