【问题标题】:How to install flow type correctly for react native@0.46+?如何为 react native@0.46+ 正确安装流类型?
【发布时间】:2017-12-24 07:13:40
【问题描述】:

我搜索了很多网站,但找不到真正适用于 react-native + flow 类型的教程。

react-native@0.22 文档中有流程安装指南,但在 react-native@0.46 中没有。

但是,它在Running Tests and Contributing 中再次出现,我测试运行npm run flow 但没有工作,但它没有说明如何使其工作。它可能是 react-native 文档中缺少的部分。

我需要的是使用 react-native 正确运行 flow。每次我用⌘R 重新加载页面时自动检查flow 会是最好的。

【问题讨论】:

    标签: react-native flowtype react-native-0.46


    【解决方案1】:

    我刚刚按流程完成了我们项目的一半,我们使用的是 RN 0.44.0。

    棘手的部分是:你是否也想知道 node_modules 中的错误,有人说这些错误很有帮助。

    无论如何,我禁用了 node_modules 中的错误,这是我的 .flowconfig:

    [ignore]
    
    <PROJECT_ROOT>/node_modules/.*
    <PROJECT_ROOT>/flowLibs.js
    .....
    [include]
    
    [libs]
    ./flowLibs.js
    .....
    [lints]
    [options]
    

    如果你设置不正确,你应该先安装flow,

    npm install --save-dev flow-bin
    

    并在安装后在您的项目根目录中运行它:

    npm run flow init
    

    如果 npm run flow init 不起作用,只需在 npm 脚本中添加 "flow": "flow"

    初始化之后,把我的.flowconfig放到你的项目.flowconfig文件中。

    然后创建一个 js 文件 flowLibs.js 并且如果 npm run flow check 导致您的任何错误,例如 Module_Name. Required module not found

    flowLibs.js中写下代码:

    declare module 'Module_Name' {  declare var exports: any;  };
    

    在那之后,你现在应该可以开始你的项目了。

    顺便说一句,不要忘记在要检查类型的文件顶部添加//@flow

    【讨论】:

    • 感谢您的回答,虽然没有多大帮助,但它给了我寻找另一个解决方案的方向。检查这是否对您有帮助stackoverflow.com/a/45790088/681830
    • 再次感谢,你应得的赏金!
    • unsafe.enable_getters_and_setters 选项在 0.62.0 中被移除(参见 github.com/facebook/flow/issues/5594)。在 .flowconfig 中包含它会引发异常
    【解决方案2】:

    我发现 flowtype 是用 react-native@0.46+ 内置的。

    对于 react-native 文档,我认为他们至少应该告诉 flowtype 已经内置。对于其余文档例如:Testing Your Changes@flow,如果没有 flow-bin,它将无法工作,他们也应该提到这一点。

    为了充分利用流类型,我将它与 Visual Studio Code 一起使用。

    步骤:

    1. 通过npm i flow-bin -g 全局安装flow-bin。 确保您的终端能够响应命令 flow
    2. 安装vscode flow extension
    3. 使用"javascript.validate.enable": false 设置vscode 工作区首选项,以禁用默认的javascript 验证,因此可以进行流验证。 要访问 vscode 首选项,ALT+F,P,S for windows,⌘+, for mac。

    那么你就安装了流型,每次击键都有视觉效果:

    【讨论】:

      【解决方案3】:

      试试这个:

      为 React Native 添加流程

      https://medium.com/react-native-training/getting-started-with-react-native-and-flow-d40f55746809

      希望这会有所帮助!

      【讨论】:

      • 你试过了吗?那是 react-native@0.33.0,但现在是 react-native@0.46.0+。在发布此问题之前,我尝试过但失败了。如果您尝试成功,请告诉我如何
      • 其实我是刚开始做flow的,这是最近已经做过的朋友推荐的。所以我想我也会推荐给你。
      猜你喜欢
      • 1970-01-01
      • 2013-10-28
      • 2019-01-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-13
      • 1970-01-01
      相关资源
      最近更新 更多