работает ли «: 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