【问题标题】:How to find unused gems and cleanup gemfile如何找到未使用的 gem 并清理 gemfile
【发布时间】:2013-10-03 19:25:25
【问题描述】:

我正在寻找一种简单但很好的方法来清理 gemfile 并使 Rails 启动更快。 如何获取所有必需 gem 与所有已加载 gem 的列表。

【问题讨论】:

    标签: ruby-on-rails rubygems gemfile


    【解决方案1】:

    bundle clean --force 将删除以前安装但当前未在当前 Gemfile.lock 清单中使用的旧 gem(或当前使用的旧版本的 gem)。

    【讨论】:

    • 这无助于清理 Gemfile
    【解决方案2】:

    首先,如果你想查看你的项目使用了哪些gem,我邀请你在你的项目文件夹根目录下运行gem server,然后转到http://0.0.0.0:8808/

    您将能够了解您的项目正在使用的所有 gem 的依赖关系。它还会向您显示同一 gem 的所有版本

    要删除旧版本的 gem,你可以像 @changerainbows 提到的那样运行 bundle clean --force

    在这一步之后,再次运行您的 gem 服务器并观察结果,这是一个包含所有依赖项的干净且易于理解的 gem 列表。

    【讨论】:

      【解决方案3】:

      这取决于你在这里追求什么。

      如果您要删除旧的、未使用的 gem 版本,请使用 bundle clean。

      如果您在开发过程中一直在添加 gem,但忘记了实际使用的 gem,并且测试覆盖率很高,那么请尝试 this answer

      如果您想将启动时拉入的 gems rails 数量减少到最低限度,请尝试gem_bench

      【讨论】:

        【解决方案4】:

        我认为这是不可能的。当您的 APP 启动时,它会从 Gemfile.lock 加载 gem,但它不知道您的代码中是否需要它们(gems)。当某些需要的 gem 丢失(如果你从 Gemfile 中删除它)时,APP 会通过引发异常来通知你,但是这可能在任何时候发生(而不是在启动你的 APP 期间)。

        因此,如果您正在寻找清理宝石列表的方法,我认为最好的方法是手动完成(我知道这并不容易)。分析每个 gem 以找出它提供的功能并决定(或在您的代码中查找)是否需要它。此外,测试(如果你有的话)应该会对你有很大帮助。

        【讨论】:

        • “我认为不可能”的意思是“我不知道”,这种情况下你不应该回答。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-04-02
        • 2012-12-29
        • 2019-09-18
        • 1970-01-01
        • 1970-01-01
        • 2018-08-12
        • 1970-01-01
        相关资源
        最近更新 更多