gpt4 book ai didi

ruby-on-rails - 使用和不使用 bundle exec 运行 rake 命令的区别

转载 作者:数据小太阳 更新时间:2023-10-29 07:32:23 32 4
gpt4 key购买 nike

使用和不使用 bundle exec 运行 rake 命令的主要区别是什么?

我看到很少有帖子说当您使用 bundle exec 运行命令时,它将在 gem 文件中定义的 gems 版本范围内运行。如果是这样,那么应该强制使用 bundle exec 运行 rake 命令?

最佳答案

bundle exec rake some:task 在您的包的上下文中运行 rake 任务。

你没有明确提到 Rails,但我看到你的帖子被标记为 Rails,所以一个设计的例子可能如下所示:

出于某种正当理由,您在系统上安装了虚构的 whateva-whateva gem 的 2.0 版。

您决定要从某个地方下载一个旧的 Rails 项目以检查它并在克隆项目的根文件夹中运行 bundle install。该命令将安装 Rails 应用程序所需的所有 gem,其中之一恰好是虚构的 whateva-whateva gem 的版本 1.0。

所以当前状态是这样的:您的旧 Rails 应用程序有一个 gem 包,其中包含旧版本的 whateva-whateva,而您的系统范围的 gem 包含较新版本的 whateva- whateva gem 。

当您运行与您的 Rails 应用程序关联的 rake 任务时,您希望加载哪个版本?当然是旧的。

为了做到这一点,您可以使用 bundle exec rake the:task 并在您的包的上下文中运行 rake 命令——旧版本的 gem 加上指定的任何其他内容在旧 Rails 应用程序的 Gemfile 中。

所以是的,毕竟,我认为可以肯定地说,最好的做法是您应该始终在 bundle exec 前面添加,但老实说,我很懒惰,很少这样做,除非我看到问题。

在其他新闻中,如果您使用 Bundler 的 binstubs,则无需添加它。这是设置它的链接:https://thoughtbot.com/blog/use-bundlers-binstubs

关于ruby-on-rails - 使用和不使用 bundle exec 运行 rake 命令的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16477253/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com