【问题标题】:How do I keep Flow annotations intact through Babel/Webpack?如何通过 Babel/Webpack 保持 Flow 注释完整?
【发布时间】:2017-05-02 15:54:57
【问题描述】:

我有一个私有 NPM 模块,用于带有流类型注释的实用程序函数。

我在 Node v7 中开发,在 npm publish 之前,我使用 Babel/Webpack 将其转换为早期的 Node 版本,以便在 AWS Lambda 等环境中运行。

我使用 transform-flow-strip-types 插件来编译 Babel,但据我了解,这意味着当我将模块导入另一个项目时,我会丢失对导出函数的静态类型检查。

我尝试了babel-plugin-syntax-flow,但它抛出了unexpected token 错误,所以我假设这不是它的预期用途。

我可以用 Babe 转换我的src/,同时保持流类型不变吗?

类型注释很简单(stringnumber,主要是),所以我想避免写typedefs 来导出每个函数。

【问题讨论】:

  • 删除 transform-flow-strip-types 将使 Babel 保留类型。也就是说,您将无法在该状态下运行代码,或将其导入不使用 Flow 的项目中 -你只会得到一大堆语法错误。

标签: npm babeljs flowtype


【解决方案1】:

我看到一篇文章解释了如何实现您所描述的:

http://javascriptplayground.com/blog/2017/01/npm-flowjs-javascript/

通过将流类型与原始流类型文件一起剥离的 javascript 发布,您将在使用库时获得正确的流类型检查。

这是通过将原始文件发布为file.js.flow,将babelified 文件发布为file.js 来实现的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-05-27
    • 1970-01-01
    • 2016-09-26
    • 2019-04-22
    • 2023-03-27
    • 1970-01-01
    • 1970-01-01
    • 2021-03-10
    相关资源
    最近更新 更多