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

Sev*_*man 8 rubygems ruby-on-rails gemfile

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

cha*_*ows 14

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

  • 这无助于清理*Gemfile*. (5认同)

Tit*_*uax 6

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

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

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

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


got*_*tva -2

我认为这是不可能的。当您的应用程序启动时,它会从 Gemfile.lock 加载 gem,但它不知道您的代码中是否需要它们(gems)。当某些东西调用未定义的类或方法时,如果缺少某些所需的 gem(如果您从 Gemfile 中将其删除),应用程序会通过引发异常来通知您,但这可能随时发生(不是在启动应用程序期间)。

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

  • “我认为不可能”的意思是“我不知道”,在这种情况下你不应该回答。 (18认同)