【问题标题】:Using Flow for browser apps将 Flow 用于浏览器应用程序
【发布时间】:2015-03-14 15:53:44
【问题描述】:

我想将 Flow(Facebook 的 JavaScript 静态类型检查器)用于浏览器应用程序。如何让 Flow 跟踪给定 .js 文件正在使用的其他 .js 文件?在 Node.js 中,require 函数的使用使 Flow 跟随其他模块并检查类型错误,我也希望浏览器应用具有类似的功能。

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

【问题讨论】:

    标签: javascript node.js flowtype


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

      我自己也遇到过这个问题,刚刚。

      由于您只有一个简单的依赖项(课堂 --> 学生,此链接包含可能对您的情况有所帮助的解决方法。http://flowtype.org/docs/third-party.html

      它说,创建一个新目录,在里面放一个“接口文件”(这基本上是一个存根。为文件选择任何名称),并包含所有内容

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

      对于更复杂的场景,比如二级依赖、第三方库(比如包含 jQuery 及其完整的 API),我没有策略。

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

      【讨论】:

        猜你喜欢
        • 2016-12-29
        • 1970-01-01
        • 1970-01-01
        • 2011-12-22
        • 2012-01-26
        • 2017-03-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多