Rotaie - Impossibile trovare un runtime JavaScript?


247

Ho creato un nuovo progetto Rails usando rails 3.1.0.rc4sul mio computer locale ma quando provo ad avviare il server ottengo: Impossibile trovare un runtime JavaScript. Vedi qui per un elenco di runtime disponibili. ( ExecJS::RuntimeUnavailable)

Nota: non si tratta di Heroku.


Risposte:


475

L'installazione di una libreria di runtime javascript come nodejs risolve questo problema

Per installare nodejs su Ubuntu, è possibile digitare il seguente comando nel terminale:

sudo apt-get install nodejs

Per installare nodejs su sistemi che usano yum, digitare quanto segue nel terminale:

yum -y install nodejs

14
anche per me. sudo apt-get install nodejs.
Hertzel Guinness il

1
Ora lo consiglio come itinerario da percorrere. Vedi sopra.
Michael Durrant,

1
rimosso la nota nella risposta sull'installazione del nodo tramite il centro software Ubuntu in quanto non presente (Ubuntu 12.04)
Michael Durrant,

1
Ubuntu 64 sta dando enormi problemi a far installare Therubyracer, nemmeno l'ultima versione, 0.11.1, l'ha risolto. Questa risposta mi ha aiutato in questo.
Eduardo,

@gwho Di seguito c'è una risposta di Yang. Dai un occhiata a questo.
theTuxRacer,

44

Nota di Michael 28/12/2011 - Ho cambiato il mio accetto da questo (rubytheracer) a sopra (nodejs) poiché therubyracer ha problemi di dimensione del codice. Heroku ora lo scoraggia fortemente . Funzionerà ma potrebbe avere problemi di dimensioni / prestazioni.

Se aggiungi un runtime, come therubyracer al tuo Gemfile ed esegui bundle, prova ad avviare il server che dovrebbe funzionare.

gem 'therubyracer'

È necessario un runtime javascript per la compilazione di coffeescript e anche per l'amplificatore.

Aggiornamento, 12/12/2011: Alcune persone hanno riscontrato problemi con rubytheracer (penso che fosse principalmente la dimensione del codice). Hanno scoperto che execjs (o nodejs) funzionava altrettanto bene (se non meglio) ed erano molto più piccoli.

nb Coffeescript è diventato uno standard per 3.1+


3
Viene anche usato per comprimere JavaScript con UglifyJS. Si noti che il modo consigliato di eseguire queste attività è eseguirle in fase di sviluppo rake assets:precompilee quindi aggiungere risorse al proprio repository; Rails 3.1 non richiede effettivamente un runtime JavaScript in produzione al momento del rilascio.
whitequark,

1
Ho contrassegnato questo come risposta. È stato un po 'peloso in quanto questo non lo ha risolto immediatamente e stavo anche provando nuove app con 3.0.9 e 3.0.4 ma ho avuto (diversi) errori con loro. Alla fine ho fatto di nuovo una nuova app - e ho anche ottenuto rails rc5 con esso e aggiunto il rubytheracer e fatto un aggiornamento bunlde e finalmente riesco a far funzionare il server. Grazie Gazier!
Michael Durrant,

1
btw L'app di rotaie standard che viene creata utilizza uglificatore che richiede anche questo credo.
Michael Durrant,

1
Penso che una buona pratica potrebbe essere messa nel gemfile sotto il gruppo di sviluppo, qualcosa del genere group :development do gem 'therubyracer' end
eveevans

@eveevans Impossibile trovare l'errore di runtime. L'asset viene compilato nell'ambiente di produzione, quindi il thyryracacer deve trovarsi nel blocco env di produzione.
Lulalala,

27

Aggiungi le seguenti gemme nel tuo file gem

gem 'therubyracer'
gem 'execjs'

e corri

bundle install

O

Installa Node.js per correggerlo in modo permanente per tutti i progetti.


1
Questo ha funzionato per me (Linux Mint 16), penso che nell'ultima versione di Rails o manchi alcune dipendenze.
geminiCoder

15

sudo apt-get install nodejsNon funziona per me. Per farlo funzionare, devo fare quanto segue:

sudo apt-get install python-software-properties
sudo add-apt-repository ppa:chris-lea/node.js
sudo apt-get update
sudo apt-get install nodejs

Spero che questo possa aiutare qualcuno che ha lo stesso problema come me.


non funziona per me il ppa add-apt-repository: chris-lea / node.js
jpganz18

@ jpganz18 prova prima questo: sudo apt-get install software-properties-common se ciò non risolve il problema, puoi installarlo manualmente: blog.anantshri.info/howto-add-ppa-in-debian
Robin,

6

Sulla piattaforma Windows ho riscontrato anche questo problema. La soluzione per me è semplicemente aggiungere

C:\Windows\System32

al PERCORSO

e riavvia il computer.


3

Ho avuto questo problema su un computer Windows e l'installazione di node.js è stata la soluzione che finalmente ha funzionato per me. Ciò è avvenuto dopo aver provato diverse altre rotte, incluso il tentativo di far funzionare il 'therubyracer'. Sebbene github per node.js suggerisca che l'installazione su Windows sia ancora instabile, il sito Web all'indirizzo http://nodejs.org/ aveva un programma di installazione di Windows che funzionava perfettamente.



1

Se tutto fallisce, puoi provare

# aptitude installa nodejs

come radice. Puoi testare la tua installazione con il seguente comando:

# node -v

Se si desidera installare NPM, fare riferimento al seguente link . Spero che sia d'aiuto.


0

Su CentOS 6.5, per me ha funzionato:

sudo yum install -y nodejs

0

Installa un runtime Javascript

L'errore è causato dall'assenza di un runtime Javascript sul tuo computer locale. Per risolvere questo problema, dovrai installare NodeJS.

È possibile installare NodeJS tramite Node Version Manager o nvm :

Innanzitutto, installa nvm:

$ curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.31.0/install.sh | bash

Installa nodo tramite nvm:

nvm install 5.9.1

Questo installerà la versione 5.9.1di Node.


0

Ho riscontrato questo problema utilizzando Phusion Passenger (in esecuzione come modulo nginx) su un server Redhat. Avevamo già installato un runtime Javascript. Le altre app Rails nella stessa directory principale funzionavano bene.

Si è scoperto che avevamo un problema con le autorizzazioni. Esegui "ls -l" e verifica se la cartella ha lo stesso proprietario e gruppo delle altre app funzionanti sul sistema. Ho dovuto eseguire chown e chgrp sulla cartella (con l'interruttore ricorsivo) per risolverlo.


0

Spero che tu abbia nodijs preinstallati || NMV.

La mia soluzione non richiede l'installazione di gem o l'installazione di 'node with sudo apt" quando hai già nvm.

Tutto ciò che serve è modificare DesctopEntry di RubyMine. per questo avremo quei piccoli passi:

  1. Vai a usr/share/applications
  2. Apri in qualsiasi editor (io uso vim) Rubymine DesktopEntryvim RubyMine
  3. Modifica riga 6 (inizia con Exec). Dovresti aggiungere all'inizio /bin/bash -i -c. Quindi la tua linea dovrebbe apparire così Exec=/bin/bash -i -c "/home/USERNAME/rubymine/RubyMine-2019.1.2/bin/rubymine.sh" %f
  4. Fatto! Sei glorioso!

Come vantaggio, tutte le variabili di ambiente sono ora disponibili per RubyMine. Quindi non provi dolore quando li aggiungi.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.