Recibo este error:
rastrillo 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, entonces estoy dispuesto a admitirlo. Creo que este es un error ejecutivo.
De todas las publicaciones, este es un problema muy común con rails 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 agregando las gemas 'execjs' y 'therubyracer' a la aplicación Gemfile, y luego ejecutando 'actualización de paquete' y / o 'instalación de paquete'. 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 reportadas no ayudan, no puedo instalar 'nodejs', 'johnson' o 'mustang', se supone que los otros ejecutables ejecutan y usan. No harán / instalarán en mi sistema.
Necesito solucionar el problema que causa que los ejecutivos no puedan localizar '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 entonces no tengo 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 encontrarlo runtimes.rb? ¿Los ejecutivos están rotos?
Aquí es 'therubyracer':
/usr/local/lib/ruby/gems/1.9.1/gems/therubyracer-0.9.9
¿Cómo puedo arreglar esto?
sudo apt-get install nodejs
resuelto mi problemaEn su archivo de gemas agregue:
Para más detalles: ExecJS y no pudo encontrar un tiempo de ejecución de JavaScript
fuente
gem install therubyracer
primero.Gemfile
y funcionó.Este es el enlace que necesitaba para solucionar el problema (instalar nodejs): https://github.com/joyent/node/wiki/Installing-Node.js-via-package-manager
fuente
Cuando crea un proyecto vacío, esta línea se comenta en Gemfile. ¡Solo descomenta y agrupa!
fuente
Tuve problemas similares en ubuntu 12.04. Instalar Node.js lo arregló.
fuente
Estoy usando Ubuntu 11.10- 32 bit con ruby 1.9.3p194, rails 3.2.3, gem 1.8.24. Recibía el mismo error de Javascript al ejecutar "consola de script / rails".
Sin embargo, hacer un "sudo apt-get install nodejs" resolvió mi problema.
fuente
Los usuarios de Fedora NO PODRÁN hacer una simple "yum install nodejs" debido a serios conflictos de nombres y ubicación de archivos que evitan 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" demasiadas para que esté dispuesto a usarlo. Estoy buscando otra alternativa.
fuente
Intente instalar NodeJS e intente nuevamente.
https://github.com/joyent/node/wiki/Installing-Node.js-via-package-manager
fuente
Si estuvieras en ubuntu
$ sudo apt-get install nodejs
Intente no utilizar otros sistemas como Windows para el desarrollo. Piense que casi todos los servidores en el mundo son servidores Linux, por lo que cuando intente implementar esa aplicación, será más fácil si también lo ha desarrollado en un entorno Linux o Unix.
fuente
Tuve el mismo problema en un servidor provisional. No tuve problemas al ejecutar tareas de rastrillo en mi máquina de desarrollo local, pero la implementación en el servidor de ensayo falló con el mensaje de error "No se pudo encontrar un tiempo de ejecución de JavaScript" al intentar ejecutar los activos: precompilar la tarea de rastrillo.
Por supuesto, therubyracer y execjs estaban en mi Gemfile, y estaba usando las últimas versiones. Mis archivos Gemfile.lock coincidían, y verifiqué aún más las versiones ejecutando bundle show .
Después de buscar en Google, terminé eliminando todas mis gemas y reinstalándolas, 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:
fuente
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 el terminal en la carpeta que creé, hago:
Después de eso ejecuto la "instalación de paquete" como de costumbre (desde la carpeta con el proyecto ruby & rails). Y el problema fue resuelto. Ruby no tuvo que reinstalar.
fuente
Se me ocurrió esto en mi máquina Windows, resulta que el problema era bastante diferente. Accidentalmente había eliminado algunos caminos de mi
%PATH%
variable. Simplemente reiniciando el símbolo del sistema lo resolvió. Parece que hubo un tiempo de ejecución JS en uno de esos caminos faltantes.fuente
Me he arrancado el pelo con este error unas pocas veces. Me las he arreglado para que desaparezca en algún momento reiniciando Apache / Nginx.
Así que lo arreglé de la misma manera que arriba, agregando lo siguiente al archivo GEM:
y luego BORRÉ mi archivo gemfile.lock y luego volví a ejecutar "paquete de instalación". Descubrí que entonces "instalación de paquete" realmente instaló las bibliotecas correctas, etc.
fuente
En Ubuntu, tuve que hacerlo
sudo apt-get update
y luego la instalación de nodejs funcionó.fuente
cuando genero rails g controller obtuve el mismo error. Después de eso, cuando hago los siguientes cambios en Gemfile (en los rieles 4) todo salió bien. Los cambios que hice fueron
gem 'execjs'
gem 'therubyracer', "0.11.4"
Después de eso, puedo ejecutar el servidor y realizar todas las operaciones básicas en la aplicación.
fuente
agregue en su gemfile que está en la carpeta que ha creado: gem 'execjs' gem 'therubyracer'
fuente
En mi caso, ejecutar el
bundle
comando hizo el truco. Confío en que se encuentren entonces.fuente
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 encontró tiempo de ejecución de JavaScript. Sin
rails s
embargo, pude correr . La solución para mí fue crear una nueva configuración de ejecución. Parece realmente extraño que la configuración de Run se corrompa.fuente