2017-08-15 34 views
0

我想將Flow添加到我正在處理的當前項目中。一切工作真的很棒。但是,我無法找到一種方法來保持類型後構建。我正在使用monorepo結構,並且有很多NPM模塊。如果模塊更改了它的接口或導出的函數/類/類型更改,我希望得到一個錯誤。保留流類型post webpack build

任何想法/指導非常受歡迎!

謝謝!

+0

如果你只是不啓用'transform-flow-strip-types' babel插件,不行嗎? –

+0

與插件的描述相同**從輸出代碼**中去除所有流類型註釋和聲明。我不想那樣。我想保留有人使用我的模塊時的類型,並且他/她也有流量集成。 –

+0

您能否澄清一下,您是否在發佈前將monorepo中的每個模塊捆綁在一起?通常,由於只有模塊的最終用戶纔會捆綁銷售,因此不會以同樣的方式引入問題。 – loganfsmyth

回答

1

Webpack將JS文件打包成單個輸出文件,但它無法在輸出包中保留流類型。

如果你想保留流邏輯使用一起這種捆綁,當前最好的做法是,包括原始的源代碼爲.js.flow文件。 This blog post詳細說明了這種方法,但簡短的版本是,您將使用flow-copy-source輸出一組符合原始源代碼的.js.flow文件。

+0

謝謝,正是我需要的 –

1

如果您堅持包括您的編譯包而不是源文件在內的其他人,則需要包含一個.js.flow文件,該文件提供了所有外部類型接口。 Here's the interface file for Immutable.js as an example

除非你的庫有某種構建複雜性需要分發它的編譯資產,否則我只需要依靠lib的使用者自己編譯和剝離類型。

+0

謝謝,真的幫了! –