rails ruby-on-rails ruby-on-rails-3.1 ruby-on-rails-plugins execjs

ruby-on-rails - jquery rails 5



execJs: ''No se pudo encontrar un tiempo de ejecución de JavaScript'', pero execjs AND therubyracer están en Gemfile (20)

Usuarios de Ubuntu:

Tuve el mismo problema y lo solucioné instalando nodejs en mi sistema, independientemente de la gema.

en ubuntu es: sudo apt-get install nodejs

Estoy usando ubbit de 64 bits 11.10

actualización: A partir de la respuesta de @Galina a continuación, supongo que se necesita la última versión de nodejs, por lo que @ steve98177 su mejor opción en un cuadro redhat (o CentOS) es instalar desde el código fuente como lo hizo @Galina, pero como usted ¿No puede "hacer / instalar" en este cuadro?, le sugiero que intente instalar un rpm de fedora (posibilidad remota) https://github.com/joyent/node/wiki/Installing-Node.js-via-package-manager o busque otro cuadro de RH / CentOs (que pueda "crear") y cree sus propias rpm e instálelas en el recuadro de RH original (si old glibc en RH juega bien).

El verdadero problema aquí (en mi humilde opinión) es la instalación de gemas que tienen dependencias en paquetes instalados fuera del entorno ruby, ¿hay alguna manera de saberlo antes de instalarlo? un RFI para gemas o bundler?

Usuarios de CentOS / RedHat:

sudo yum install nodejs

Me aparece este error:

rake abortado! No se pudo encontrar un tiempo de ejecución de JavaScript. Ver https://github.com/sstephenson/execjs ,

Ya he pasado más horas buscando en Google y estoy dispuesto a admitirlo. Creo que este es un error de la ejecutiva.

De todas las publicaciones, este es un problema muy común con los rieles 3.1. Ahora se necesita un tiempo de ejecución js por lo que ahora son gemas estándar como coffee-script y sass.

La mayoría de estos casos se resolvieron añadiendo gems ''execjs'' y ''therubyracer'' a la aplicación Gemfile, y luego ejecutando ''bundle update'' y / o ''bundle install''. Pero no para mí.

Supongo que tuve suerte. Estoy ejecutando rails 3.1.3 / ruby ​​1.9 en una versión anterior de Redhat Linux 4 (2.6.9-101.ELsmp) y gcc es 3.4.6.

Otras correcciones informadas no ayudan, no puedo instalar ''nodejs'', ''johnson'' o ''mustang'', los otros tiempos de ejecución que se supone que execJs debe localizar y usar. No harán / instalarán en mi sistema.

Necesito solucionar el problema que hace que execJs no localice ''therubyracer''. Aquí está el Gemfile (y la instalación del paquete dice Ok):

source ''http://rubygems.org'' gem ''rails'', ''3.1.3'' gem ''sqlite3'' gem ''sho-mongrel'' gem ''execjs'' gem ''therubyracer'' #gem "therubyracer", :require => ''v8'' group :assets do gem ''sass-rails'', ''~> 3.1.5'' gem ''coffee-rails'', ''~> 3.1.1'' gem ''uglifier'', ''>= 1.0.3'' end

Y aquí hay un rastro:

~/rails/316-private-pub/chatter-after>rake db:create --trace rake aborted! Could not find a JavaScript runtime. See https://github.com/sstephenson/execjs for a list of available runtimes. /usr/local/lib/ruby/gems/1.9.1/gems/execjs-1.3.0/lib/execjs/runtimes.rb:50:in `autodetect'' /usr/local/lib/ruby/gems/1.9.1/gems/execjs-1.3.0/lib/execjs.rb:5:in `<module:ExecJS>'' /usr/local/lib/ruby/gems/1.9.1/gems/execjs-1.3.0/lib/execjs.rb:4:in `<top (required)>'' /usr/local/lib/ruby/gems/1.9.1/gems/bundler-1.0.21/lib/bundler/runtime.rb:68:in `require'' /usr/local/lib/ruby/gems/1.9.1/gems/bundler-1.0.21/lib/bundler/runtime.rb:68:in `block (2 levels) in require'' /usr/local/lib/ruby/gems/1.9.1/gems/bundler-1.0.21/lib/bundler/runtime.rb:66:in `each'' /usr/local/lib/ruby/gems/1.9.1/gems/bundler-1.0.21/lib/bundler/runtime.rb:66:in `block in require'' /usr/local/lib/ruby/gems/1.9.1/gems/bundler-1.0.21/lib/bundler/runtime.rb:55:in `each'' /usr/local/lib/ruby/gems/1.9.1/gems/bundler-1.0.21/lib/bundler/runtime.rb:55:in `require'' /usr/local/lib/ruby/gems/1.9.1/gems/bundler-1.0.21/lib/bundler.rb:122:in `require'' /home/vitalarthur/rails/316-private-pub/chatter-after/config/application.rb:7:in `<top (required)>'' /usr/local/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'' /usr/local/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'' /home/vitalarthur/rails/316-private-pub/chatter-after/Rakefile:5:in `<top (required)>'' /usr/local/lib/ruby/gems/1.9.1/gems/rake-0.9.2.2/lib/rake/rake_module.rb:25:in `load'' /usr/local/lib/ruby/gems/1.9.1/gems/rake-0.9.2.2/lib/rake/rake_module.rb:25:in `load_rakefile'' /usr/local/lib/ruby/gems/1.9.1/gems/rake-0.9.2.2/lib/rake/application.rb:501:in `raw_load_rakefile'' /usr/local/lib/ruby/gems/1.9.1/gems/rake-0.9.2.2/lib/rake/application.rb:82:in `block in load_rakefile'' /usr/local/lib/ruby/gems/1.9.1/gems/rake-0.9.2.2/lib/rake/application.rb:133:in `standard_exception_handling'' /usr/local/lib/ruby/gems/1.9.1/gems/rake-0.9.2.2/lib/rake/application.rb:81:in `load_rakefile'' /usr/local/lib/ruby/gems/1.9.1/gems/rake-0.9.2.2/lib/rake/application.rb:65:in `block in run'' /usr/local/lib/ruby/gems/1.9.1/gems/rake-0.9.2.2/lib/rake/application.rb:133:in `standard_exception_handling'' /usr/local/lib/ruby/gems/1.9.1/gems/rake-0.9.2.2/lib/rake/application.rb:63:in `run'' /usr/local/lib/ruby/gems/1.9.1/gems/rake-0.9.2.2/bin/rake:33:in `<top (required)>'' /usr/local/bin/rake:19:in `load'' /usr/local/bin/rake:19:in `<main>''

No hay nada interesante en el registro de desarrollo.

Aquí está el directorio execjs:

/usr/local/lib/ruby/gems/1.9.1/gems/execjs-1.3.0/lib/execjs>ls disabled_runtime.rb module.rb ruby_rhino_runtime.rb version.rb external_runtime.rb mustang_runtime.rb runtimes.rb johnson_runtime.rb ruby_racer_runtime.rb

También probé execjs-1.2.13. El mismo problema.

Si comento execjs.rb a continuación, puedo ejecutar rake sin el error:

require "execjs/module" require "execjs/runtimes" module ExecJS self.runtime #||= Runtimes.autodetect end

Pero luego no obtengo un tiempo de ejecución.

Puedo ver de dónde viene el texto de error en runtimes.rb:

def self.autodetect from_environment || best_available || raise(RuntimeUnavailable, "Could not find a JavaScript runtime. " + "See https://github.com/sstephenson/execjs for a list of available runtimes.") end

Entonces, la pregunta es, ya que tengo instalado ''therubyracer'', ¿por qué no puede Runtimes.rb encontrarlo? ¿Están los ejecutivos rotos?

Aquí está ''therubyracer'':

/usr/local/lib/ruby/gems/1.9.1/gems/therubyracer-0.9.9

¿Cómo puedo arreglar esto?


Cuando comienza un nuevo proyecto vacío, la siguiente línea se comenta en Gemfile. Simplemente quítelo y ejecute bundle install

gema ''therubyracer'',: plataformas =>: ruby


Cuando crea un proyecto vacío, esta línea se comenta en Gemfile. ¡Simplemente quítelo y empaquételo!

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


En Ubuntu, tuve que sudo apt-get update y luego la instalación de nodejs funcionó.


En mi caso, ejecutar el comando bundle hizo el truco. Confío en que se encuentren entonces.




Estoy usando Ubuntu 11.10- 32 bit con ruby ​​1.9.3p194, carriles 3.2.3, gema 1.8.24. Recibía el mismo error de Javascript al ejecutar "consola script / rails".

Sin embargo, hacer un "sudo apt-get install nodejs" resolvió mi problema.



Los usuarios de Fedora NO podrán hacer un simple "yum install nodejs" debido a conflictos serios de nombres y colocación de archivos que impiden que este paquete esté disponible a través de los repositorios de Fedora.

Aparentemente hay al menos un repositorio alternativo disponible con una compilación alternativa que puede funcionar, pero son dos "alternativas" para que yo esté dispuesto a usarlo. Estoy buscando otra alternativa.


Me he arrancado el pelo con este error un tiempo. Me las he arreglado para hacer que desaparezca en algún momento reiniciando Apache / Nginx.

Así que lo arreglé de la misma manera que la anterior, agregando lo siguiente al archivo GEM:

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

y luego BORRÉ mi archivo gemfile.lock y luego relancé "bundle install". Encontré solo que "bundle install" instaló las bibliotecas correctas, etc.


Me ocurrió esto en mi máquina con Windows, resulta que el problema fue bastante diferente. Había eliminado accidentalmente algunas rutas de mi %PATH% . Simplemente reiniciar el símbolo del sistema lo resolvió. Parece como si hubiera un tiempo de ejecución JS en una de esas rutas que faltan.


Si estabas en ubuntu $ sudo apt-get install nodejs

Intenta no usar otros sistemas como Windows para el desarrollo. Piensa que casi todos los servidores del mundo son servidores Linux, por lo que cuando intentes implementar esa aplicación será más fácil si también lo has desarrollado en un entorno Linux o Unix.


Tuve el mismo problema en un servidor de etapas. No tuve problemas para ejecutar tareas de rake en mi máquina de desarrollo local, pero la implementación en el servidor de transición falló con el mensaje de error "No se pudo encontrar el tiempo de ejecución de JavaScript" al intentar ejecutar los activos: precompilación de la tarea de rake.

Por supuesto, therubyracer y execjs estaban en mi Gemfile, y yo estaba usando las últimas versiones. Mis archivos Gemfile.lock coinciden, y además verifiqué las versiones ejecutando bundle show .

Después de buscar en Google, terminé borrando todas mis gemas y volviéndolas a instalar, lo que solucionó el problema. Todavía no sé cuál fue la causa raíz, pero tal vez esto te ayude.

Así es como se ve mi entorno, por cierto:

Ubuntu 10.04.3 LTS rbenv Ruby 1.9.2-p290 bundler-1.0.21 execjs-1.3.0 therubyracer-0.9.9


Tuve este problema al usar RubyMine (6.3.3). Un día intenté ejecutar mi código, pero no funcionó y me quejé de que no se encontrara el tiempo de ejecución de JavaScript. Pude correr rails s sin embargo. La solución para mí fue crear una nueva configuración de ejecución. Parece realmente extraño que la configuración de ejecución se dañara.



Yo tuve el mismo problema. Agregar las gemas ''execjs'' y ''therubyracer'' no funciona para mí. apt-get install nodejs - tampoco funciona. Estoy usando 64bit ubuntu 10.04.

Pero me ayudó lo siguiente: 1. Creé una carpeta vacía (por ejemplo, "java"). 2. Desde la terminal en la carpeta que creé, hago:

$ git clone git://github.com/ry/node.git $ cd node $ ./configure $ make $ sudo make install

Después de eso, ejecuto "bundle install" como de costumbre (desde la carpeta con el proyecto ruby ​​& rails). Y el problema fue resuelto Ruby no tuvo que reinstalar.


agregue su gemfile que está en la carpeta que ha creado: gem ''execjs'' gem ''therubyracer''


cuando genero un controlador de rieles g recibí el mismo error. Después de eso, cuando los siguientes cambios en Gemfile (en rails 4) todo fue sin problemas. Los cambios que hice fueron

gem ''execjs''
gema ''therubyracer'', "0.11.4"
Después de eso, puedo ejecutar el servidor y poder hacer todas las operaciones básicas en la aplicación.


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

solo agrega la lista de gemas arriba a tu archivo gem ... y ejecuta rieles s