2017-05-08 63 views
1

我想知道是否以及在什麼條件下,您應該將您的flow-typed文件夾發佈到包中的NPM。或許(以及我一直在想的)答案永遠不會,應用程序開發人員可以自己使用流式自定義,但flow-typed install可能僅爲自己聲明的依賴關係提供定義,而不是包中的依賴關係。所以簡而言之,如果你的軟件包具有非對等的流類型依賴性,我應該發佈我的flow-typed文件夾還是我應該使用npmignore它?你應該將流式文件夾發佈到NPM嗎?

回答

2

你永遠不應該發佈這個文件夾。我認爲如果你發佈它,除了不必要地增加你的包裝尺寸之外,沒有什麼不好的事情會發生。但是,也沒有什麼好事會發生。

flow-typed的要點是,如果使用這些庫定義,流程不必檢查庫代碼。相反,它需要給定的庫定義。如果我使用你的庫,我的項目中的Flow不是檢查你的庫。因此,它不需要知道任何有關您的依賴關係的信息。

當然,這取決於您將庫接口發佈到flow-typed。不幸的是,這些工具還不存在讓這種簡單,但它是正確的做法。如果您只是將源代碼發佈到npm,客戶端可能會使用與您使用的版本不同的Flow版本,因此他們可能會看到僅由於版本差異(因爲幾乎每個Flow版本都是重大更改)所導致的不可執行的錯誤消息。即使Flow版本匹配,您也可能有不同的.flowconfig選項,這些選項可能會導致錯誤。

+0

優秀。 ..我實際上有一個以前的問題,我剛剛意識到是關於'.flowconfig'回答的,如果用戶沒有,例如'$ FlowFixMe',則會導致錯誤。 ...另外,我使用'flow-copy-source',以便我的流文件也在分佈式軟件包中 - 這應該能夠代替發佈到'flow-typed',是否正確? –

+0

這是前面的問題:http://stackoverflow.com/questions/42154415/in-flow-npm-packages-whats-the-proper-way-to-suppress-issues-so-user-apps-don –

+0

那應該在許多情況下工作,但由於配置的不同(如您在該問題中提到的)或Flow版本的不同,它不會100%可靠。唯一確定的方法是將你的typedefs發佈爲流式輸入,讓你的庫的用戶從那裏獲取它們。不幸的是,我注意到這個工具還不存在,所以很容易。 –

相關問題