Estoy tratando de usar la plantilla Mongoid / Devise Rails 3.1 ( Mongoid y Devise ), y sigo recibiendo un error que indica que ExecJS no puede encontrar un tiempo de ejecución de JavaScript. Es justo cuando no tenía ninguno instalado, pero intenté instalar Node.js , Mustang y el Ruby Racer , pero nada funciona.
No pude encontrar un tiempo de ejecución de JavaScript. Consulte sstephenson / ExecJS (GitHub) para obtener una lista de tiempos de ejecución disponibles ( ExecJS::RuntimeUnavailable
).
¿Qué necesito hacer para que esto funcione?
ruby-on-rails-3.1
execjs
javascript
srboisvert
fuente
fuente
Respuestas:
Usuarios de Ubuntu
Estoy en Ubuntu 11.04 y tuve problemas similares. La instalación de Node.js lo arregló.
A partir de Ubuntu 13.04 x64 solo necesita ejecutar:
Esto solucionará el problema.
Usuarios de CentOS / RedHat
fuente
Simplemente agregue ExecJS y el Ruby Racer en su archivo de gemas y ejecute
bundle install
después.Todo debería estar bien después.
fuente
gem 'therubyracer'
En tu archivo Gem, escribe
y luego correr
Todo funciona bien para mí :)
fuente
Tuve un problema similar: mi aplicación Rails 3.1 funcionó bien en Windows pero obtuvo el mismo error que el OP cuando se ejecutaba en Linux. La solución que funcionó para mí en ambas plataformas fue agregar lo siguiente a mi
Gemfile
:El truco es saber que en
:platforms => :ruby
realidad significa solo usar esta gema con "C Ruby (MRI) o Rubinius, pero NO con Windows".Otros valores posibles para
:platforms
se describen en labundler
página del manual .FYI: Windows tiene un motor JavaScript incorporado que
execjs
puede ubicar. En Linux no hay una versión incorporada, aunque hay varias disponibles que se pueden instalar.therubyracer
es uno de ellos. Otros se enumeran en elexecjs
archivo README.md .fuente
Agregar la siguiente gema a mi Gemfile resolvió el problema:
Luego agrupa tus nuevas dependencias:
fuente
Una forma alternativa es simplemente agrupar sin el grupo de gemas que contiene las cosas que no tiene.
Entonces hazlo:
no tiene que modificar el Gemfile en absoluto, siempre que no esté haciendo cosas de la cadena de activos, lo que generalmente se aplica en entornos que no son de desarrollo. Bundle recordará su configuración '--sin' en el archivo .bundle / config.
fuente
Agregue las siguientes gemas en su archivo de gemas
y correr
estás listo :)
fuente
Para Amazon Linux (AMI):
fuente
Solía agregar Ruby Racer al archivo Gem para arreglarlo. Pero bueno, ¡ Node.js funciona!
fuente
Tuve este mismo error, pero solo en mi servidor provisional, no en mi entorno de producción. nodejs ya estaba instalado en ambos entornos.
Escribiendo:
Descubrí que el comando del nodo estaba ubicado en: / usr / bin / node en producción pero: / usr / local / bin / node en la preparación.
Después de crear un enlace simbólico en la puesta en escena, es decir:
la aplicación luego funcionó en la puesta en escena.
Sin despeinarse sin problemas.
fuente
nodejs
tambiénNo use RubyRacer ya que es malo para la memoria. Instalar Node.js como lo sugieren algunas personas aquí es una mejor idea.
Esta lista de tiempos de ejecución disponibles que puede utilizar ExecJs Library también documenta el uso de Node.js
https://github.com/sstephenson/execjs
Entonces, Node.js no es una exageración, y una solución mucho mejor que usar RubyRacer.
fuente
FYI, esto solucionó el problema para mí ... es un problema de ruta: http://forums.freebsd.org/showthread.php?t=35539
fuente
Comencé a tener este problema cuando comencé a usar rbenv con Ruby 1.9.3 donde, como mi sistema, ruby es 1.8.7. La gema está instalada en ambos lugares, pero por alguna razón el script de rails no la recogió. Pero agregar los "execjs" y "therubyracer" al Gemfile hizo el truco.
fuente
En su archivo de gemas, descomente esta línea.
19 # gem 'therubyracer', plataformas:: ruby
Y ejecuta la instalación del paquete
Estás listo para trabajar :)
fuente
Intentando depurar en RubyMine usando Ubuntu 18.04, Ruby 2.6. *, Rails 5 y RubyMine 2019.1.1 , me encontré con el mismo problema.
Para resolver el problema, descomenté la
mini_racer
línea de miGemfile
y luego ejecutébundle
:Cambiar a:
fuente
Instalé a
node
través de nvm y encontré este problema al implementar con Capistrano. Capistrano no cargó nvm automáticamente porque se ejecuta de forma no interactiva.Para solucionarlo, simplemente mueva las líneas que nvm agrega a su
~/.bashrc
parte superior. El archivo se verá así:fuente