【问题标题】:flow - am I supposed to ignore node_modules?flow - 我应该忽略 node_modules 吗?
【发布时间】:2020-07-27 20:06:04
【问题描述】:

当需要解析 node_modules 时,flow 的初始化速度非常慢。所以最简单的方法就是用

忽略它
[ignore]
.*/node_modules/.*

这很好,直到您想要来自第三方库的流定义。此时标准似乎是通过flow-typed 安装它们。但是如果库生成自己的流源文件如graphql呢?

解决此问题的最佳/推荐方法是什么? flow 是否应该解析所有内容,而我只需要处理缓慢的初始化时间,因为对于每天处理多个 repo 的人来说,这听起来像是糟糕的用户体验?

我已经通过在我的忽略.flowconfig 中编写正则表达式来亲自处理这个问题,因为我明确知道我需要不忽略包,但这似乎非常手动,因为我需要知道每个包以及它们是否使用流源文件、流-typed,或者什么都没有。

【问题讨论】:

    标签: reactjs flowtype flow-typed


    【解决方案1】:

    我首先建议尝试在supported lazy modes 之一中启动服务器,您可以将flow check 推迟到 CI 进行全面分析。

    一个稍微不那么危险的替代方案可能会减少解析的文件数量,可以配置为:

    [ignore]
    // Ignore subdependencies.
    .*/node_modules/.*/node_modules
    
    // If you have a monorepo, you might skip your workspace packages,
    // as these probably shadow packages from the project root.
    <PROJECT_ROOT>/packages/.*/node_modules
    

    此外,可以忽略node_modules,选择进入untyped-import 严格模式并使用flow-typed create-stub &lt;pkg&gt; 为所有无类型包创建库定义。这可以潜在地用于减少您必须解析的文件数量,但它有点费力,并且主要有利于那些因 I/O 受到压力而感到困难的人。

    最后,您可能想看看saved state

    【讨论】:

    • 为什么以这种方式使用[ignore] 而不仅仅是[declarations]
    • @Andy [ignore] 确实是我们可以指示服务器跳过解析文件的唯一方法。
    • 是的。 Flow 不会等到文件从...导入后才解析文件,这很烦人。
    猜你喜欢
    • 1970-01-01
    • 2016-08-27
    • 2011-12-23
    • 1970-01-01
    • 2019-02-04
    • 1970-01-01
    • 2019-01-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多