2016-01-03 17 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 
 
    }]] 
 
}