如何在bundler上下文中运行ruby脚本?
我有一个名为foo.rb的Ruby脚本,我想在bundler环境的上下文中运行它。 怎么样?
bundle exec foo.rb
不起作用,因为exec需要一个shell脚本。
将脚本名称传递给ruby
命令:
bundle exec ruby script_name
如果你还想要Rails环境:
bundle exec rails runner script_name
例如,我想使用与我的Rails应用程序相同版本的Rubocop,而不是最新的系统,所以在脚本中这样做:
require 'bundler' Bundler.require # ...
允许我使用我的应用程序的rubocop版本。
你可以把它做成一个脚本 – 添加
#!/usr/bin/env ruby
到文件的开头,并使其可执行。 然后bundle exec foo.rb
将按预期工作。
(这是在UNIX或OSX上 – 不知道Windows)
请参阅http://bundler.io/v1.15/man/bundle-exec.1.html#Loading
另请参阅https://coderwall.com/p/kfyzcw/execute-ruby-scripts-directly-without-bundler-exec了解如何使用捆绑的依赖运行ruby脚本,而不需要;bundle exec