ruby-on-rails 如何找到未使用的gem和清理gem文件

9bfwbjaz  于 2023-05-19  发布在  Ruby
关注(0)|答案(4)|浏览(194)

我正在寻找一个简单的,但好的方法来清理gemfile,使rails启动更快。我怎样才能得到一个列表中的所有必需的宝石与所有加载的宝石。

6ss1mwsb

6ss1mwsb1#

bundle clean --force将删除以前安装的旧gem(或当前使用的gem的旧版本),但当前未在您当前的Gemfile.lock清单中使用。
编辑:正如在评论中正确提到的,这不会“清理”或改变Gemfile文本内容本身。

djp7away

djp7away2#

首先,如果您想检查您的项目使用了哪些gem,我建议您在项目根目录下运行gem server,然后转到http://0.0.0.0:8808/
您将能够了解项目正在使用的所有gem的依赖项。它还将显示您同一个gem的所有版本
要删除旧版本的gem,您可以运行@changingrainbows mention bundle clean --force
在这一步之后,再次运行gem服务器并观察结果,一个干净且易于理解的gem列表,包含所有依赖项。

r7xajy2e

r7xajy2e3#

这取决于你在这里的目的。
如果你想删除旧的、未使用的gem版本,那么请使用bundle clean。
如果您在开发过程中一直在添加gem,并且丢失了实际使用的gem,并且具有良好的测试覆盖率,那么尝试this answer
如果你想将启动时导入的gems rails的数量减少到最低限度,试试gem_bench

8fq7wneg

8fq7wneg4#

我认为这是不可能的。当您的应用程序启动时,它从Gemfile.lock加载gem,但它不知道您的代码中是否需要它们(gem)。APP通过引发异常来通知你当某个东西调用了一个未定义的类或方法时,如果错过了一些需要的gem(如果你从Gemfile中删除了它),但这可能在任何时候发生(不是在启动APP时)。
因此,如果你正在寻找清理宝石列表的方法,我认为最好的方法是手动(我知道这不是一个容易的方法)。分析每个gem,找出它提供的功能,并决定(或在代码中找到)是否需要它。此外,测试(如果你有)应该会对你有很大帮助。

相关问题