【问题标题】:Flow-typed - Generate Libdef流式 - 生成 Libdef
【发布时间】:2017-08-31 07:25:15
【问题描述】:

我正在使用 Flow 来帮助创作一个 JS 项目。如果我想提供一个libdef file 来补充它,我是否需要手动创建它,或者我是否能够执行一些我还不知道的魔术命令来为我生成 lib def?

$ flow-typed doyourmagic 这样的东西会很好。

编辑:

找到这个https://stackoverflow.com/a/38906578/192999

上面写着:

有两件事:

如果文件归您所有(即不是 node_modules 内的第三方库等),那么您可以在它旁边创建一个 *.js.flow 文件来记录其导出。

如果该文件不属于您(即 node_modules 中的第三方库等),那么您可以在 flow-typed/name-of-library.js 中创建一个 libdef 文件

对于 .js.flow 文件 你这样写定义:

// @flow 
declare module.exports: { ... } 

对于 libdef 文件,您可以这样编写定义:

declare module "my-third-party-library" {   declare module.exports: {... } }

对于我的问题,我属于“归你所有”阵营。

我想我很困惑:

  1. 我如何编写这些文件。
  2. 我如何/在何处发布这些文件以将其打包以供另一个项目参考。

另外,为什么我需要手动创建 .js.flow 文件?这不能神奇地生成吗?也许这就是未来的意图,但尚未实施。

【问题讨论】:

    标签: flowtype flow-typed


    【解决方案1】:

    我找到了一个不错的guide,它展示了如何将流代码与编译后的代码打包在一起。所以:

    1. 您不必编写自己的 libdef,您可以使用整个流程源代码。如果您想要一个仅包含类型声明的定义,您可以查看flow gen-flow-files,尽管这仍然是实验性的并且可能会失败。
    2. 您可以将它们打包为*.js.flow,当您导入库时,流量检查器会自动提取它们。

    【讨论】:

    • 但是,如果你有一个捆绑包,你会怎么做?我rollup 使要求更快的代码(1 个中等大小的文件与 300 个 littles 文件),但是随后将源文件复制为 *.js.flow 将不起作用,因为不再有相应的 *.js 文件,或者会吗?
    猜你喜欢
    • 2018-12-27
    • 1970-01-01
    • 1970-01-01
    • 2015-12-13
    • 2018-03-27
    • 1970-01-01
    • 1970-01-01
    • 2020-09-13
    • 2011-08-05
    相关资源
    最近更新 更多