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

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

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

因此,如果您正在寻找清理gem清单的方法,我认为最好的方法是手动完成(我知道这并不容易)。 分析每个gem以找出它提供的function,并决定(或在代码中查找)是否需要。 另外的测试(如果你有的话)可以帮到你很多。

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

这取决于你在这里所追求的。

如果你想删除旧的,未使用的gem版本,那么捆绑干净。

如果您在开发过程中添加了gem并且已经忘记了实际使用的gem并且具有良好的测试覆盖率,那么请尝试这个答案 。

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