【发布时间】:2021-08-18 12:12:41
【问题描述】:
我了解“bundle exec”是指示捆绑器在给定目录和 gemfile 的上下文中执行某些操作。
但是bundle exec rake 和bundle exec rackup 有什么区别呢?
另外,在bundle exec rackup 的情况下,执行流程的开始是什么?
【问题讨论】:
我了解“bundle exec”是指示捆绑器在给定目录和 gemfile 的上下文中执行某些操作。
但是bundle exec rake 和bundle exec rackup 有什么区别呢?
另外,在bundle exec rackup 的情况下,执行流程的开始是什么?
【问题讨论】:
它们是不同的工具。
rackup 是运行 Rack 应用程序的有用工具,它使用 Rack::Builder DSL 来配置中间件并轻松构建应用程序。 rackup 会自动计算出它运行的环境,并以 FastCGI、CGI 或 WEBrick 的形式运行您的应用程序——所有这些都来自相同的配置。
要运行 Rack 应用程序,您可以将路径作为参数传递给它:
bundle exec rackup yourapp.ru
或者使用您的应用程序初始化创建config.ru 文件,然后运行bundle exec rackup。
这是最小的 Rack 应用程序:
run ->(env) { [200, {'Content-Type' => 'text/html'}, ['Hi Mugen']] }
UPD
正如@tadman 在bundle exec 下面的评论中提到的那样,只需加载Gemfile 中的内容并准备好环境。此外,根据您的设置,您可以在不使用 bundle exec 命令的情况下运行 rake 和 rackup。
【讨论】:
bundle exec 只是加载Gemfile 中的内容并在运行下一个命令之前准备好Ruby 环境。