2017-05-08 60 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发布为流式输入,让你的库的用户从那里获取它们。不幸的是,我注意到这个工具还不存在,所以很容易。 –

相关问题