2017-05-08 37 views
1

flow-typedフォルダーをあなたのパッケージのNPMに公開する必要があるかどうかは、私が知りたいことです。おそらく(そして私が考えている)答えは決して決してありません。アプリケーション開発者はフロー型を使用することになりますが、おそらくflow-typed installはパッケージ内の依存関係ではなく、宣言した依存関係の定義のみを選択します。フロータイプのフォルダをNPMに公開する必要がありますか?

要するに、パッケージにピアツーピア型の依存関係がある場合は、flow-typedフォルダを公開する必要がありますか、それともnpmignoreする必要がありますか?

答えて

2

このフォルダは公開しないでください。パッケージサイズを不必要に増やすだけでなく、公開すれば悪いことは起こりません。しかし、良いことも起こりません。

flow-typedのポイントは、これらのライブラリ定義を使用すると、フローはライブラリコードを確認する必要がないということです。代わりに、与えられたライブラリ定義を受け取ります。あなたのライブラリを消費する場合、私のプロジェクトのFlowはあなたのライブラリをタイプチェックしていません。したがって、依存関係について何も知る必要はありません。

もちろん、これはライブラリのインターフェイスをflow-typedに公開しても当然です。残念ながら、これを簡単にするためのツールはまだ存在しませんが、それは正しいことです。ソースをnpmに公開しているだけの場合、クライアントは使用していたバージョンとは異なるバージョンのフローを使用している可能性があります。そのため、バージョンの違いによる単純なエラーメッセージが表示されることがあります。 .flowconfigのオプションが異なる場合もあります。フローのバージョンが一致してもエラーが発生する可能性があります。

+0

が優れています。 ..私が実際に気づいた以前の質問は、例えば '$ FlowFixMe'などのユーザーには' .flowconfig'と答えられてエラーが発生しました。 ...また、私は 'flow-copy-source'を使って、私のフローファイルが分散パッケージにもあるようにします。' flow-typed'へのパブリッシュの代わりに動作するはずです。 –

+0

はこれまでの質問です:http://stackoverflow.com/questions/42154415/in-flow-npm-packages-whats-the-properway-to-suppress-issues-so-user-apps-don –

+0

多くの場合は機能するはずですが、configの違い(その質問に記載されているように)やFlowバージョンの違いのために100%信頼できるものではありません。あなたのtypedefをフロー型にパブリッシュし、ライブラリのコンシューマにそこから取得させることが唯一の方法です。残念なことに、私が触れたように、これを簡単にするためのツールはまだ存在しません。 –

関連する問題