Tengo una aplicación Rails que desarrollo en Windows y estoy implementando en Linux. Sospecho que me cambiaré por completo a Linux en el futuro. De todos modos, en Linux necesito 'execjs' y 'therubyracer', pero no los necesito en Win7. Por lo que poner estas líneas en mi Gemfile:usa ": plataformas =>" en su trabajo de gemfile?
gem 'therubyracer', :platforms => :ruby
gem 'execjs', :platforms => :ruby
pasó una bundle install
en la máquina virtual de Linux y la aplicación empecé a subir bien. Pero en Windows me sale:
Uncaught exception: Could not find execjs-1.2.11 in any of the sources
Ahora, por lo que leí (here bajo plataformas) me dice que "Si una joya sólo se debe utilizar en una plataforma en particular o un conjunto de plataformas, puede especificar ellos" y la muestra es la siguiente:
gem "weakling", :platforms => :jruby
y dice "ruby C Ruby (MRI) or Rubinius, but NOT Windows
". Entonces, para mí, eso dice que bundler debería estar ignorando la línea execjs
en Windows. Sin embargo en Windows cuando me encontré bundle install
vi esto:
Installing execjs (1.2.11)
Así que me dice que me falta algo acerca de los documentos o bundler ignora el comando plataformas. ¿Estoy haciendo algo mal?
PS>bundle -v
Bundler version 1.0.21
El bit de información que se necesita es que las plataformas en el Gemfile se refiere a la implementación de Ruby, NO OS. Rubí ==: resonancia magnética en todas las plataformas de sistemas operativos por lo que no se puede utilizar para evitar que una joya de ser instalado en un sistema operativo u otro. – ffoeg
@ffoeg la línea de los documentos (rubí: C Rubí ... NO Windows) no está de acuerdo con que – jcollum
mi error. La respuesta a tu pregunta sigue siendo la misma. las plataformas en Bundler funcionan, pero no es el mecanismo que desea utilizar en este caso. Ver mi respuesta a continuación. – ffoeg