如何找到未使用的宝石和清理gemfile

时间:2013-10-03 19:25:25

标签: ruby-on-rails rubygems gemfile

我正在寻找简单但好的方法来清理gemfile并使rails更快启动。 如何获得所有必需宝石与所有加载宝石的列表。

4 个答案:

答案 0 :(得分:12)

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

答案 1 :(得分:2)

这取决于你在此之后的情况。

如果您正在寻找删除旧的未使用的宝石版本,请捆绑干净。

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

如果您想减少启动时拉杆的拉杆数量,请尝试gem_bench

答案 2 :(得分:1)

我认为这是不可能的。当你的APP启动它从Gemfile.lock加载宝石,但它不知道你的代码中是否需要它们(宝石)。 APP通过引发异常通知您当某些内容调用未定义的类或方法时(如果从Gemfile中删除了某些需要的gem),但这可能在任何时候发生(而不是在启动APP时)。

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

答案 3 :(得分:1)

首先,如果要检查项目使用的gem,我邀请您在项目文件夹的根目录中运行gem server,然后转到http://0.0.0.0:8808/

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

要删除旧版本的宝石,您可以运行@changingrainbows提及 bundle clean --force

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