使用stream浏览器应用程序

我想为浏览器应用程序使用Flow(Facebook的静态types检查器)。 如何让Flow跟随给定的.js文件正在使用的其他.js文件? 在Node.js中,使用require函数使Flow跟随其他模块并检查types错误,并且我也希望为浏览器应用程序提供类似的function。

假设我有一个使用模块Student.jsClassroom.js文件。 当我运行Flow时,它会抛出错误identifier Student Unknown global name

Facebook使用browserify在他们的Flux Chat示例中执行此操作。 Browserify在节点式JavaScript中内联require语句以生成可以在浏览器中运行的代码。

这里是他们的package.json的相关位:

 { "scripts": { "build": "NODE_ENV=production browserify . | uglifyjs -cm > js/bundle.min.js", }, "browserify": { "transform": [ ["reactify", { "stripTypes": true }], "envify" ] } } 

我刚才自己遇到了这个问题。

由于您有一个简单的依赖关系(“课堂” – >学生,该链接包含一个解决方法,可能有助于您的情况。http://flowtype.org/docs/third-party.html

它说,创build一个新的目录,把一个“接口文件”里面(这基本上是一个存根,select文件的任何名称),并包括所有

 flow check --lib /abs/path/to/my/interfacefiledir/ Classroom.js 

对于更复杂的场景,如次要依赖关系,第三方库(比如包含完整API的jQuery),我没有策略。

我认为facebook-flow团队已经在他们的待办事项列表中增加了“添加更多接口文件”。 http://flowtype.org/docs/coming-soon.html#_