【问题标题】:Ignoring node_modules when using flow使用流时忽略 node_modules
【发布时间】:2017-08-12 20:28:29
【问题描述】:

我在我的 React Native 应用程序中使用 flow,flow 的初始启动非常慢,因为它正在遍历我的 node_modules 目录。 Flow 报告来自这些第三方库的大量错误,我无法修复。

我可以告诉 flow 忽略 node_modules 中的任何错误吗?我的配置文件中有这个:

[ignore]
.*/node_modules/.*

但是,流现在告诉抛出 react-native Required module not found。奇怪的是,在导入 React 时并没有发现这个错误。

【问题讨论】:

    标签: flowtype


    【解决方案1】:

    您可以在项目根目录中创建一个名为 flow-typed 的文件夹,并在其中为您的模块创建声明文件。因此,在这种情况下,您将创建文件:

    flow-typed/react-native.js

    // @flow
    
    declare module 'react-native' {
        /* declarations go here... */
    }
    

    React 在包含时不会抱怨的原因是,flow 带有开箱即用的声明 (https://github.com/facebook/flow/blob/master/lib/react.js),就像它带有 javascript 和浏览器标准库的声明一样。

    警告,不过,编写这些声明文件并非易事。要获得灵感,请查看 Flow 附带的声明以及 https://github.com/flowtype/flow-typed 存储库中的声明。

    【讨论】:

    • 绝对正确!我使用flow-typed 为我的devDependencies 中的所有模块自动生成声明文件。但是,react-native 是 dependency,所以我必须手动创建文件。
    • @Dan AFAIK react-native 带有流类型 - 也许您曾经/正在使用太新版本的流?我认为他们仍在 v0.40.0 上。
    • 如果您不想手动编写声明存根,请使用流类型创建声明存根:flow-typed create-stub <library-name>
    • 有没有办法告诉 flow 我想忽略 node_modules 中的库并且不提供任何流类型声明?我希望 flow 完全忽略该库,每当我与它交互时,flow 都可以认为它是有效的。我承担这个风险。能做到吗?
    猜你喜欢
    • 1970-01-01
    • 2018-06-22
    • 2018-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-18
    • 1970-01-01
    • 2018-10-14
    相关资源
    最近更新 更多