У меня есть приложение 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. Однако в Windows, когда я запустил bundle install
, я увидел это:
Installing execjs (1.2.11)
Так что это говорит мне, что я что-то упустил в документах или упаковщик игнорирует команду платформы. Я делаю что-то неправильно?
PS>bundle -v
Bundler version 1.0.21