работает ли «: platform =>» в вашем гемфайле?

У меня есть приложение Rails, которое я разрабатываю для Windows и внедряю в Linux. Я подозреваю, что в будущем просто полностью переключусь на Linux. В любом случае, в Linux мне нужны execjs и therubyracer, но в Win7 они мне не нужны. Поэтому я поместил эти строки в свой gemfile:

gem 'therubyracer', :platforms => :ruby
gem 'execjs', :platforms => :ruby

Побежалbundle install на виртуальной машине Linux и приложение запустилось нормально. Но на Windows я получаю:

Uncaught exception: Could not find execjs-1.2.11 in any of the sources

Теперь из того, что я прочитал (Вот под ПЛАТФОРМАМИ) он говорит мне, что «если драгоценный камень должен использоваться только на конкретной платформе или наборе платформ, вы можете указать их», и пример таков:

gem "weakling",   :platforms => :jruby 

И это говоритruby C Ruby (MRI) or Rubinius, but NOT Windows". Так что для меня это говорит, что упаковщик должен игнорироватьexecjs линия на винде. Однако на Windows, когда я побежалbundle install Я видел это:

Installing execjs (1.2.11)

Это говорит мне, что я что-то упускаю из-за того, что docs или bundler игнорируют команду платформы. Я делаю что-то неправильно?

PS>bundle -v
Bundler version 1.0.21

Ответы на вопрос(7)

Ваш ответ на вопрос