我正在寻找一个简单的,但好的方法来清理gemfile,使rails启动更快。我怎样才能得到一个列表中的所有必需的宝石与所有加载的宝石。
6ss1mwsb1#
bundle clean --force将删除以前安装的旧gem(或当前使用的gem的旧版本),但当前未在您当前的Gemfile.lock清单中使用。编辑:正如在评论中正确提到的,这不会“清理”或改变Gemfile文本内容本身。
bundle clean --force
djp7away2#
首先,如果您想检查您的项目使用了哪些gem,我建议您在项目根目录下运行gem server,然后转到http://0.0.0.0:8808/您将能够了解项目正在使用的所有gem的依赖项。它还将显示您同一个gem的所有版本。要删除旧版本的gem,您可以运行@changingrainbows mention bundle clean --force在这一步之后,再次运行gem服务器并观察结果,一个干净且易于理解的gem列表,包含所有依赖项。
gem server
r7xajy2e3#
这取决于你在这里的目的。如果你想删除旧的、未使用的gem版本,那么请使用bundle clean。如果您在开发过程中一直在添加gem,并且丢失了实际使用的gem,并且具有良好的测试覆盖率,那么尝试this answer。如果你想将启动时导入的gems rails的数量减少到最低限度,试试gem_bench。
8fq7wneg4#
我认为这是不可能的。当您的应用程序启动时,它从Gemfile.lock加载gem,但它不知道您的代码中是否需要它们(gem)。APP通过引发异常来通知你当某个东西调用了一个未定义的类或方法时,如果错过了一些需要的gem(如果你从Gemfile中删除了它),但这可能在任何时候发生(不是在启动APP时)。因此,如果你正在寻找清理宝石列表的方法,我认为最好的方法是手动(我知道这不是一个容易的方法)。分析每个gem,找出它提供的功能,并决定(或在代码中找到)是否需要它。此外,测试(如果你有)应该会对你有很大帮助。
4条答案
按热度按时间6ss1mwsb1#
bundle clean --force
将删除以前安装的旧gem(或当前使用的gem的旧版本),但当前未在您当前的Gemfile.lock清单中使用。编辑:正如在评论中正确提到的,这不会“清理”或改变Gemfile文本内容本身。
djp7away2#
首先,如果您想检查您的项目使用了哪些gem,我建议您在项目根目录下运行
gem server
,然后转到http://0.0.0.0:8808/您将能够了解项目正在使用的所有gem的依赖项。它还将显示您同一个gem的所有版本。
要删除旧版本的gem,您可以运行@changingrainbows mention
bundle clean --force
在这一步之后,再次运行gem服务器并观察结果,一个干净且易于理解的gem列表,包含所有依赖项。
r7xajy2e3#
这取决于你在这里的目的。
如果你想删除旧的、未使用的gem版本,那么请使用bundle clean。
如果您在开发过程中一直在添加gem,并且丢失了实际使用的gem,并且具有良好的测试覆盖率,那么尝试this answer。
如果你想将启动时导入的gems rails的数量减少到最低限度,试试gem_bench。
8fq7wneg4#
我认为这是不可能的。当您的应用程序启动时,它从Gemfile.lock加载gem,但它不知道您的代码中是否需要它们(gem)。APP通过引发异常来通知你当某个东西调用了一个未定义的类或方法时,如果错过了一些需要的gem(如果你从Gemfile中删除了它),但这可能在任何时候发生(不是在启动APP时)。
因此,如果你正在寻找清理宝石列表的方法,我认为最好的方法是手动(我知道这不是一个容易的方法)。分析每个gem,找出它提供的功能,并决定(或在代码中找到)是否需要它。此外,测试(如果你有)应该会对你有很大帮助。