【发布时间】:2016-07-26 23:12:08
【问题描述】:
我有一个共享的 npm 包,其中包含几个 js 应用程序使用的一些业务逻辑。 src中有es6+flow源文件,然后在lib中构建vanilla js文件,包的main设置为lib/index.js,导出应该可见的东西。
我花了几天的时间使用流类型重写了包,这整理了一些代码,也有助于发现一些问题。它工作得很好,类型检查,测试通过。 Babel 删除了所有流位,因此需要该包的客户端仍然可以在 js 中获取纯文件并正常工作。
但是现在我想允许这个包的客户端(可选地)获取函数的类型签名并检查他们的调用是否正确输入。我可以写一个声明文件,但这似乎很愚蠢,因为类型已经在原始的 pre-babel 源代码中。同时,我不能只提供那个来源,因为有些客户可能没有使用 flow 或 babel。而且我宁愿没有人希望类型必须知道确切的源文件路径并且必须require('my-package/src/the-piece-i-want')
有没有一种标准的方式来编写一个带有 flow 的包,以便 require('my-package') 对普通节点用户和 babel+flow 用户的类型检查都有效?如果没有,其他有此问题的人在做什么?
【问题讨论】:
标签: javascript node.js babeljs flowtype