Estou tentando usar o modelo Mongoid / Devise Rails 3.1 ( Mongoid e Devise ) e continuo recebendo um erro informando que o ExecJS não pode encontrar um tempo de execução JavaScript. É justo o suficiente quando eu não tenho nenhum instalado, mas tentei instalar o Node.js , o Mustang e o Ruby Racer , mas nada está funcionando.
Não foi possível encontrar um tempo de execução JavaScript. Consulte sstephenson / ExecJS (GitHub) para obter uma lista dos tempos de execução disponíveis ( ExecJS::RuntimeUnavailable
).
O que preciso fazer para que isso funcione?
ruby-on-rails-3.1
execjs
javascript
srboisvert
fonte
fonte
Respostas:
Usuários do Ubuntu
Estou no Ubuntu 11.04 e tive problemas semelhantes. A instalação do Node.js foi corrigida.
No Ubuntu 13.04 x64, você só precisa executar:
Isto resolverá o problema.
Usuários do CentOS / RedHat
fonte
Basta adicionar o ExecJS e o Ruby Racer no seu arquivo gem e executar
bundle install
depois.Tudo deve ficar bem depois.
fonte
gem 'therubyracer'
No seu arquivo Gem, escreva
e depois corra
Tudo funciona bem para mim :)
fonte
Eu tive um problema semelhante: meu aplicativo Rails 3.1 funcionou bem no Windows, mas obteve o mesmo erro do OP ao executar no Linux. A correção que funcionou para mim nas duas plataformas foi adicionar o seguinte ao meu
Gemfile
:O truque é saber que,
:platforms => :ruby
na verdade, significa usar apenas essa gema com "C Ruby (MRI) ou Rubinius, mas NÃO com o Windows".Outros valores possíveis para
:platforms
são descritos nabundler
página do homem .FYI: O Windows possui um mecanismo JavaScript embutido que
execjs
pode ser localizado. No Linux, não há um built-in, embora haja vários disponíveis que podem ser instalados.therubyracer
é um deles. Outros estão listados noexecjs
arquivo README.md .fonte
A adição da seguinte jóia ao meu Gemfile resolveu o problema:
Em seguida, agrupe suas novas dependências:
fonte
Uma maneira alternativa é apenas agrupar sem o grupo de gemas que contém as coisas que você não possui.
Então faz:
você não precisa modificar o Gemfile, desde que, obviamente, você não esteja fazendo coisas da cadeia de ativos - o que geralmente se aplica a ambientes que não são de desenvolvimento. O pacote lembrará sua configuração '--without' no arquivo .bundle / config.
fonte
Adicione as seguintes jóias no seu arquivo gem
e corra
você terminou :)
fonte
Para amazon linux (AMI):
fonte
Eu costumava adicionar o Ruby Racer ao arquivo Gem para corrigi-lo. Mas ei, o Node.js funciona!
fonte
Eu tive esse mesmo erro, mas apenas no meu servidor intermediário, não no meu ambiente de produção. O nodejs já estava instalado nos dois ambientes.
Digitando:
Descobri que o comando do nó estava localizado em: / usr / bin / node na produção, mas: / usr / local / bin / node na preparação.
Depois de criar um link simbólico na preparação, ou seja:
o aplicativo trabalhou na preparação.
Sem confusão, sem confusão.
fonte
nodejs
tambémNão use RubyRacer, pois é ruim na memória. Instalar o Node.js, conforme sugerido por algumas pessoas aqui, é uma ideia melhor.
Esta lista de tempos de execução disponíveis que podem ser usados pela ExecJs Library também documenta o uso do Node.js
https://github.com/sstephenson/execjs
Portanto, o Node.js não é um exagero e é uma solução muito melhor do que usar o RubyRacer.
fonte
FYI, isso corrigiu o problema para mim ... é um problema de correção: http://forums.freebsd.org/showthread.php?t=35539
fonte
Comecei a ter esse problema quando comecei a usar o rbenv com o Ruby 1.9.3, onde, como no sistema, o ruby é 1.8.7. A gema é instalada nos dois lugares, mas por alguma razão o script rails não a pegou. Mas adicionar o "execjs" e o "therubyracer" ao Gemfile fez o truque.
fonte
No seu arquivo gem Remova o comentário desta linha.
19 # gem 'therubyracer', plataformas:: ruby
E execute a instalação do pacote
Você está pronto para trabalhar. :)
fonte
Tentativa de depuração no RubyMine usando o Ubuntu 18.04, Ruby 2.6. *, Rails 5 e RubyMine 2019.1.1 , encontrei o mesmo problema.
Para resolver o problema, tirei o comentário da
mini_racer
linha da minhaGemfile
e executeibundle
:Mudar para:
fonte
Eu instalei
node
via nvm e encontrei esse problema ao implantar com o Capistrano. O Capistrano não carregou o nvm automaticamente porque é executado de maneira não interativa.Para corrigir, basta mover as linhas que a nvm adiciona ao seu
~/.bashrc
topo. O arquivo será mais ou menos assim:fonte