2016-01-03 16 views
2

我参加了我的个人项目,我想整合flowtype。现在,内部的package.json我:FlowType + babelify

"babel-plugin-syntax-flow": "6.3.13" 

这有助于babelify到成绩单的流动型的语法,但它不会做“流量检查”和不记录潜在的错误。我是否应该为https://www.npmjs.com/package/gulp-flowtype设置一个单独的gulp任务和单独的包,或者babel-plugin-syntax-flow是否也处理错误日志记录?

回答

5

Babel知道Flow的唯一方法是如何解析它,以免它引起语法错误。通常你会使用babel-plugin-transform-flow-strip-types,它启用你现在使用的语法插件,然后删除流程类型,以便它们不会在最终输出中结束。如果您使用Babel预设react,那么这也是默认启用的。

你一定还会使用Flow的标准类型检测器来进行实际的静态分析。

0

这是我工作的解决方案:

您需要安装:

$ NPM我--save-dev的通天塔 - 插件语法流 通天-插件变换流条-types巴贝尔-插件-类型检测

然后加入

"typecheck", 
"syntax-flow", 
"transform-flow-strip-types", 

您.babelrc配置

这里是我的配置的一个示例:

都在运行时,进入控制台
{ 
    "presets": ["stage-2", "es2015", "react"], 
    "plugins": [ 
    "react-hot-loader/babel", 
    "transform-decorators-legacy", 
    "typecheck", 
    "syntax-flow", 
    "transform-flow-strip-types", 
    "transform-async-to-generator" 
    ], 
    "env": { 
    "development": { 
     "presets": ["react-hmre"] 
    }, 
    "test":{ 
     "presets": ["stage-2", "es2015", "react"], 
     "plugins": [ 
     "react-hot-loader/babel", 
     "transform-decorators-legacy", 
     "typecheck", 
     "syntax-flow", 
     "transform-flow-strip-types", 
     "transform-async-to-generator" 
     ], 
    } 
    } 
} 

这将输出错误。

0

截至6月2017,所有你需要做的就是npm i --save-dev flow-runtime,并添加:

{ 
 
    "plugins": [["flow-runtime", { 
 
    "assert": true, 
 
    "annotate": true 
 
    }]] 
 
}