【问题标题】:Is it possible to generate hidden-definitions for a single file?是否可以为单个文件生成隐藏定义?
【发布时间】:2019-08-06 04:22:36
【问题描述】:

在大型 Rails 应用程序上运行 srb init 时,该进程使用大量内存 (10GB+) 并且需要很长时间(超过 10 或 15 分钟)才能完成。是否可以更新单个文件或子目录的隐藏定义以加快此过程?

我特别想到新的 gem 或文件更改需要更新隐藏定义但我不想重新初始化整个项目的情况。

【问题讨论】:

    标签: sorbet


    【解决方案1】:

    计算 hidden-definitions.rbi 必须是整个程序范围的。算法是:

    • 加载项目中的所有代码,包括 gems
    • 对项目中的所有代码运行 sorbet,包括已经为 gems 创建的 RBI
    • 输出包含前两步差异的 RBI。

    因此,从根本上说,必须为整个项目计算 hidden-definitions.rbi。

    【讨论】:

    • 隐藏的定义文件对每个类/模块都有一个部分。在您描述的最后一步中,是否不可能为类/模块的子集计算差异?你能否解释一下为什么(在第 2 步中)不能只在代码的一个子集上运行 sorbet?
    猜你喜欢
    • 2013-03-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-30
    • 2022-11-17
    • 2018-07-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多