Правильный способ объединить `bundle exec` и` ruby -r`? - PullRequest
1 голос
/ 07 января 2020

Давайте поэкспериментируем со случайным камнем, не имеет значения, какое.

# Gemfile
gem "hashie"

Давайте установим наш комплект в (полу) нестандартном месте, чтобы ruby не смог его найти :

bundle install --path=vendor/bundle
ruby -e 'require "hashie"'
# cannot load such file -- hashie (LoadError)

Как и ожидалось, если мы добавим bundle exec к вышеприведенному, то ruby -e сможет найти наш драгоценный камень:

bundle exec ruby -e 'puts require "hashie"'
# true

Но даже с bundle exec, ruby -r не может найти наш драгоценный камень!

bundle exec ruby -r hashie -e 'puts "win"'
# cannot load such file -- hashie (LoadError)

Единственный найденный мной способ объединения bundle exec и ruby -r:

bundle exec ruby -r 'bundler/setup' -r hashie -e 'puts "win"'
# win

The документация для bundle exe c не упоминает ruby -r, поэтому я спрашиваю здесь, это правильный путь?

1 Ответ

0 голосов
/ 07 января 2020
-r 'bundler/setup'

приемлемо. Это значит «требовать все драгоценные камни в моем Gemfile». 'ha shie' не может загрузить свои зависимости, поэтому произошло «LoadError». ссылка: bundler_setup

...