首先安装flownpmiflow-bin--save-dev然后在package.json中添加脚本"scripts":{"flow":"flowcheck"}项目根目录运行命令生成.flowconfig文件npmrunflowinit打开.flowconfig文件,可以看到内容如下*/node_modules/.*.*/test/.*.*/build/.*[include][libs][lints][options]module.file_ext=.vuemodule.file_ext=.js[strict]要忽略的文件在[ignore]下配置,在[options]中我们可以添加module。file_ext=.vue这样的配置Flow检测vue单文件组件然后在需要flow进行类型检测的.js文件或者.vue文件的script标签内容的顶部,添加注释//@flow没有这个注释,文件不会进行类型检测配置到这里,我们可以运行npmrunflow进行代码类型检测,得到检测报告。由于类型注解不是我们ES规范的一部分,所以我们需要将使用flow的代码转换成普通的js代码,可以使用babel-preset-flow或babel-plugin-transform-flow-strip-types去除。安装流相关的流插件:babel-cli:babel-cli脚手架babel-preset-flow:用于在编译前去除代码中的类型声明babel-plugin-transform-flow-strip-types同上,和选择一个npminstall--save-devbabel-clibabel-preset-flow安装完成后,在项目根目录下的.babelrc文件中添加如下内容(没有则创建){"presets":[["env",{"modules":false,"targets":{"browsers":[">1%","last2versions","notie<=8"]}}],"stage-2","flow"],"plugins":[//"babel-plugin-transform-flow-strip-types"]}如果想在代码中实时查看流类型检查的错误,需要安装eslint插件npmieslint-plugin-flowtype-errors--save-dev然后在.eslintrc文件中添加配置:{plugins:['flowtype-errors'],rules:{"flowtype-errors/show-errors":2}}PS:它可能会报告“在vscode中进行类型声明时,类型声明只能在.ts文件中使用”错误。这时候找到setting,搜索javascript.validate,禁用即可参考文章:WritingVue.jsComponentswithFlow
