Estou recebendo este erro:
ancinho abortado! Não foi possível encontrar um tempo de execução JavaScript. Consulte https://github.com/sstephenson/execjs ,
Já passei mais horas pesquisando no google do que estou disposto a admitir. Eu acredito que este é um bug do execJs.
De todas as postagens, esse é um problema muito comum no rails 3.1. Um tempo de execução js agora é necessário pelo que agora são gemas padrão, como coffee-script e sass.
A maioria desses casos foi resolvida adicionando as gems 'execjs' e 'therubyracer' ao aplicativo Gemfile e, em seguida, executando 'bundle update' e / ou 'bundle install'. Mas não para mim.
Acho que tive sorte. Estou executando o rails 3.1.3 / ruby 1.9 em uma versão antiga do Redhat Linux 4 (2.6.9-101.ELsmp) e o gcc é 3.4.6.
Outras correções relatadas não ajudam, não consigo instalar 'nodejs', 'johnson' ou 'mustang'; os outros execJs de execução devem localizar e usar. Eles não farão / instalarão no meu sistema.
Preciso corrigir o problema que faz com que os execJs falhem ao localizar 'therubyracer'. Aqui está o Gemfile (e a instalação do pacote diz 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
E aqui está um traço:
~/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>'
Não há nada interessante no log de desenvolvimento.
Aqui está o diretório 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
Eu também tentei o execjs-1.2.13. Mesmo problema.
Se eu comentar execjs.rb abaixo, eu posso executar o rake sem o erro:
require "execjs/module"
require "execjs/runtimes"
module ExecJS
self.runtime #||= Runtimes.autodetect
end
Mas então eu não tenho tempo de execução.
Eu posso ver de onde vem o texto do erro em 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
Portanto, a pergunta é: como eu tenho o 'therubyracer' instalado, por que o runtimes.rb não pode encontrá-lo? Os execJs estão quebrados?
Aqui está 'therubyracer':
/usr/local/lib/ruby/gems/1.9.1/gems/therubyracer-0.9.9
Como posso consertar isso?
sudo apt-get install nodejs
resolveu meu problema.No seu gemfile, adicione:
Para obter mais detalhes: ExecJS e não foi possível encontrar um tempo de execução JavaScript
fonte
gem install therubyracer
primeiro.Gemfile
e funcionou.Este é o link que eu precisava para corrigir o problema (instalar o nodejs): https://github.com/joyent/node/wiki/Installing-Node.js-via-package-manager
fonte
Quando você cria um projeto vazio, essa linha é comentada no Gemfile. Apenas descomente-o e junte-o!
fonte
Eu tive problemas semelhantes no ubuntu 12.04. A instalação do Node.js foi corrigida.
fonte
Estou usando o Ubuntu 11.10- 32 bits com ruby 1.9.3p194, rails 3.2.3, gem 1.8.24. Estava recebendo o mesmo erro de Javascript ao executar o "console de scripts / rails".
No entanto, fazer um "sudo apt-get install nodejs" resolveu meu problema.
fonte
Os usuários do Fedora NÃO conseguirão executar um simples "yum install nodejs" devido a sérios conflitos de nomeação e colocação de arquivos que impedem que este pacote esteja disponível nos repositórios do Fedora.
Aparentemente, há pelo menos um repositório alternativo disponível com uma construção alternativa que pode funcionar, mas são duas "alternativas" demais para que eu esteja disposto a usá-lo - estou procurando outra alternativa.
fonte
Tente instalar o NodeJS e tente novamente.
https://github.com/joyent/node/wiki/Installing-Node.js-via-package-manager
fonte
Se você estivesse no ubuntu
$ sudo apt-get install nodejs
Tente não usar outros sistemas como o Windows para desenvolvimento. Pense que quase todos os servidores do mundo são servidores Linux; portanto, ao tentar implantar esse aplicativo, será mais fácil se você o tiver desenvolvido em um ambiente Linux ou Unix também.
fonte
Eu tive o mesmo problema em um servidor intermediário. Não tive problemas ao executar tarefas de rake na minha máquina de desenvolvimento local, mas a implantação no servidor de temporariedade falhou com a mensagem de erro "Não foi possível encontrar um tempo de execução JavaScript" ao tentar executar os ativos: tarefa de pré-compilação de rake.
Obviamente, therubyracer e execjs estavam no meu Gemfile e eu estava usando as versões mais recentes. Meus arquivos Gemfile.lock foram compatíveis e eu verifiquei ainda mais as versões executando o bundle show .
Depois de pesquisar no Google, acabei excluindo todas as minhas gemas e reinstalando-as, corrigindo o problema. Ainda não sei qual foi a causa principal, mas talvez isso ajude você.
Aqui está a aparência do meu ambiente, BTW:
fonte
Eu tive o mesmo problema. Adicionar as gems 'execjs' e 'therubyracer' não funciona para mim. apt-get install nodejs - também não funciona. Estou usando o ubuntu 10.04 de 64 bits.
Mas isso me ajudou no seguinte: 1. Criei uma pasta vazia (por exemplo "java"). 2. No terminal da pasta que criei, faço:
Depois disso, eu corro "bundle install" como de costume (da pasta com o projeto ruby & rails). E o problema foi resolvido. Ruby não precisou reinstalar.
fonte
Eu tive isso ocorrer comigo na minha máquina Windows, verifica-se que o problema era bem diferente. Eu removi acidentalmente alguns caminhos da minha
%PATH%
variável. Basta reiniciar o prompt de comando e resolvê-lo. Parece que houve um tempo de execução JS em um desses caminhos ausentes.fonte
Eu arranquei meu cabelo com esse erro algumas vezes. Eu consegui fazer isso desaparecer algum dia reiniciando o Apache / Nginx.
Então, eu o corrigi da mesma maneira que acima, adicionando o seguinte ao arquivo GEM:
e, em seguida, apaguei meu arquivo gemfile.lock e, em seguida, reran a "instalação do pacote configurável". Descobri somente então que o "pacote de instalação" realmente instalou as bibliotecas corretas etc.
fonte
No Ubuntu, tive que fazer
sudo apt-get update
e, em seguida, a instalação do nodejs funcionou.fonte
Quando eu gerar o controlador Rails G, recebi o mesmo erro. Depois disso, quando as seguintes alterações no Gemfile (nos trilhos 4) foram executadas, tudo correu bem.
gem 'execjs'
gem 'therubyracer', "0.11.4"
Depois disso, consigo executar o servidor e executar todas as operações básicas no aplicativo.
fonte
adicione seu gemfile que está na pasta que você criou: gem 'execjs' gem 'therubyracer'
fonte
No meu caso, executar o
bundle
comando fez o truque. Confio que eles se encontrem então.fonte
Eu tive esse problema ao usar o RubyMine (6.3.3). Um dia, tentei executar meu código, mas ele não funcionou e reclamei sobre nenhum tempo de execução do JavaScript encontrado. Eu era capaz de correr
rails s
embora. A correção para mim foi criar uma nova configuração de execução. Parece realmente estranho que a configuração de execução fique corrompida.fonte