如何通过 Babel/Webpack 保持 Flow 注释完整?
How do I keep Flow annotations intact through Babel/Webpack?
我有一个私有 NPM 模块,用于带有 Flow 类型注释的实用函数。
我在 Node v7 中开发,在 npm publish
之前,我使用 Babel/Webpack 将其转换为较早的 Node 版本,在 AWS Lambda 等环境中 运行。
我使用 Babel 的 transform-flow-strip-types
插件进行编译,但据我了解,这意味着当我将模块导入另一个项目时,我失去了对导出函数的静态类型检查。
我试过 babel-plugin-syntax-flow
,但它抛出 unexpected token
错误,所以我假设这不是它的预期用途。
我可以用 Babe 转换我的 src/
,同时保持 Flow 类型不变吗?
类型注释很简单(string
,number
,大部分),所以我想避免编写 typedef
s 来导出每个函数。
我看到一篇解释如何实现您所描述内容的文章:
http://javascriptplayground.com/blog/2017/01/npm-flowjs-javascript/
通过发布流类型被剥离的 javascript 和原始流类型文件,您将在使用您的库时得到正确的流类型检查。
这是通过将原始文件发布为 file.js.flow
,将 babel 化文件发布为 file.js
来实现的。
我有一个私有 NPM 模块,用于带有 Flow 类型注释的实用函数。
我在 Node v7 中开发,在 npm publish
之前,我使用 Babel/Webpack 将其转换为较早的 Node 版本,在 AWS Lambda 等环境中 运行。
我使用 Babel 的 transform-flow-strip-types
插件进行编译,但据我了解,这意味着当我将模块导入另一个项目时,我失去了对导出函数的静态类型检查。
我试过 babel-plugin-syntax-flow
,但它抛出 unexpected token
错误,所以我假设这不是它的预期用途。
我可以用 Babe 转换我的 src/
,同时保持 Flow 类型不变吗?
类型注释很简单(string
,number
,大部分),所以我想避免编写 typedef
s 来导出每个函数。
我看到一篇解释如何实现您所描述内容的文章:
http://javascriptplayground.com/blog/2017/01/npm-flowjs-javascript/
通过发布流类型被剥离的 javascript 和原始流类型文件,您将在使用您的库时得到正确的流类型检查。
这是通过将原始文件发布为 file.js.flow
,将 babel 化文件发布为 file.js
来实现的。