如何在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