Railsy - nie możesz znaleźć środowiska wykonawczego JavaScript?

247

Utworzyłem nowy projekt Railsów rails 3.1.0.rc4na moim komputerze lokalnym, ale kiedy próbuję uruchomić serwer, dostaję: Nie można znaleźć środowiska uruchomieniowego JavaScript. Zobacz tutaj listę dostępnych środowisk uruchomieniowych. ( ExecJS::RuntimeUnavailable)

Uwaga: Tu nie chodzi o Heroku.

Michael Durrant
źródło

Odpowiedzi:

475

Zainstalowanie biblioteki wykonawczej javascript, takiej jak nodejs, rozwiązuje ten problem

Aby zainstalować nodejs na Ubuntu, możesz wpisać następujące polecenie w terminalu:

sudo apt-get install nodejs

Aby zainstalować nodejs w systemach korzystających z yum, wpisz następujące polecenie w terminalu:

yum -y install nodejs
theTuxRacer
źródło
14
dla mnie też. sudo apt-get install nodejs.
Hertzel Guinness,
1
Teraz polecam to jako drogę do podjęcia. Patrz wyżej.
Michael Durrant
1
usunięto notatkę w odpowiedzi na temat instalowania węzła za pośrednictwem centrum oprogramowania Ubuntu, ponieważ go tam nie było (Ubuntu 12.04)
Michael Durrant,
1
Ubuntu 64 sprawia ogromne problemy z zainstalowaniem programu Therubyracer, nawet ostatnia wersja, 0.11.1, nie rozwiązała tego. Ta odpowiedź pomogła mi w tym.
Eduardo,
@gwho Poniżej znajduje się odpowiedź Yang. Spójrz na to.
theTuxRacer
44

Uwaga od Michaela 28.12.2011 - Zmieniłem moją akceptację z tego (rubytheracer) na powyższe (nodejs), ponieważ termubyracer ma problemy z rozmiarem kodu. Heroku teraz zdecydowanie to odradza . Będzie „działać”, ale może mieć problemy z rozmiarem / wydajnością.

Jeśli dodasz środowisko wykonawcze, takie jak therubyracer do Gemfile i uruchom pakiet, spróbuj uruchomić serwer, który powinien działać.

gem 'therubyracer'

Środowisko wykonawcze javascript jest wymagane do kompilacji coffeescript, a także dla programu uglifier.

Aktualizacja, 12.12.2011: Niektórzy ludzie znaleźli problemy z Rubytheracerem (myślę, że był to głównie rozmiar kodu). Odkryli, że execjs (lub nodejs) działali równie dobrze (jeśli nie lepiej) i byli znacznie mniejsi.

nb Coffeescript stał się standardem dla wersji 3.1+

Gazler
źródło
3
Służy również do kompresji JavaScript za pomocą UglifyJS. Zauważ, że zalecanym sposobem wykonywania tych zadań jest wykonanie ich w fazie programowania, rake assets:precompilea następnie dodanie zasobów do repozytorium; Rails 3.1 w rzeczywistości nie będzie wymagał środowiska uruchomieniowego JavaScript podczas produkcji.
Whitequark
1
Oznacziłem to jako odpowiedź. To było trochę owłosione, ponieważ to nie naprawiło tego od razu, a także próbowałem nowych aplikacji z 3.0.9 i 3.0.4, ale dostałem (inne) błędy z nimi. W końcu znowu zrobiłem nową aplikację - dostałem również railsowe rc5, dodałem rubytheracer, zrobiłem aktualizację bunlde i wreszcie mogę uruchomić serwer. Dzięki Gazierze!
Michael Durrant,
1
btw Standardowa aplikacja railsowa, która jest tworzona, używa uglifera, który również wymaga tego.
Michael Durrant,
1
Myślę, że dobrą praktyką może być umieszczenie go w pliku gem w grupie programistów, coś w stylu group :development do gem 'therubyracer' end
eveevans
@eveevans środowiska wykonawczego nie można znaleźć błędu. Zasób jest kompilowany w środowisku produkcyjnym, więc termowirnik musi znajdować się w bloku produkcyjnym env.
lulalala
27

Dodaj następujące klejnoty do pliku klejnotów

gem 'therubyracer'
gem 'execjs'

i biegnij

bundle install

LUB

Zainstaluj Node.js, aby naprawić to na stałe dla wszystkich projektów.

Ramiz Raja
źródło
1
To zadziałało dla mnie (Linux Mint 16), myślę, że w najnowszej wersji szyn albo brakuje niektórych zależności.
geminiCoder
15

sudo apt-get install nodejsnie działa dla mnie Aby go uruchomić, muszę wykonać następujące czynności:

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

Mam nadzieję, że pomoże to komuś, kto ma taki sam problem jak ja.

flyingsnow
źródło
doenst praca dla mnie add-apt-repository ppa: chris-lea / node.js
jpganz18
@ jpganz18 spróbuj tego najpierw: sudo apt-get install software-properties-common Jeśli to nie rozwiąże problemu, możesz zainstalować go ręcznie: blog.anantshri.info/howto-add-ppa-in-debian
Robin
6

Na platformie Windows również spotkałem ten problem. Rozwiązaniem dla mnie jest po prostu dodanie

C:\Windows\System32

do ŚCIEŻKI

i uruchom ponownie komputer.

Yang
źródło
3

Miałem ten problem na komputerze z systemem Windows i zainstalowanie node.js było rozwiązaniem, które w końcu działało dla mnie. Stało się tak po wypróbowaniu wielu innych tras, w tym próbie uruchomienia „termubirownika”. Chociaż github dla node.js sugeruje, że instalacja w systemie Windows jest nadal niestabilna, strona internetowa http://nodejs.org/ miała instalatora Windows, który działał doskonale.

Edub Kendo
źródło
1

Jeśli wszystko zawiedzie, możesz spróbować

# aptitude install nodejs

jako root. Możesz przetestować swoją instalację za pomocą następującego polecenia:

# node -v

Jeśli chcesz zainstalować NPM, zapoznaj się z poniższym linkiem . Mam nadzieję, że to pomoże.

użytkownik3576216
źródło
0

W CentOS 6.5 działało dla mnie:

sudo yum install -y nodejs
Bob Stine
źródło
0

Zainstaluj środowisko uruchomieniowe JavaScript

Błąd jest spowodowany brakiem środowiska wykonawczego Javascript na komputerze lokalnym. Aby rozwiązać ten problem, musisz zainstalować NodeJS.

Możesz zainstalować NodeJS za pomocą Node Version Manager lub nvm :

Najpierw zainstaluj nvm:

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

Zainstaluj węzeł poprzez nvm:

nvm install 5.9.1

Spowoduje to zainstalowanie wersji 5.9.1Węzła.

gnerkus
źródło
0

Natknąłem się na ten problem za pomocą Phusion Passenger (działającego jako moduł nginx) na serwerze Redhat. Zainstalowaliśmy już środowisko uruchomieniowe JavaScript. Inne aplikacje Rails w tym samym katalogu nadrzędnym działały poprawnie.

Okazało się, że mieliśmy problem z uprawnieniami. Uruchom „ls -l” i sprawdź, czy folder ma tego samego właściciela i grupę, co inne działające aplikacje w systemie. Musiałem uruchomić chown i chgrp na folderze (z przełącznikiem rekurencyjnym), aby go naprawić.

Patrick
źródło
0

Mam nadzieję, że masz już zainstalowane nodejs || nmv.

Moje rozwiązanie nie wymaga konfiguracji klejnotów ani instalacji „węzła z sudo apt”, gdy masz już NVM.

Wszystko czego potrzebujesz to edycja DesctopEntry of RubyMine. do tego będziemy mieli te małe kroki:

  1. Iść do usr/share/applications
  2. Otwórz w dowolnym edytorze (używam vima) Rubymine DesktopEntryvim RubyMine
  3. Edytuj wiersz 6 (zaczyna się od Exec). Powinieneś dodać do początku /bin/bash -i -c. Więc twoja linia powinna wyglądać tak Exec=/bin/bash -i -c "/home/USERNAME/rubymine/RubyMine-2019.1.2/bin/rubymine.sh" %f
  4. Gotowe! Jesteś chwalebny!

Jako korzyść wszystkie zmienne środowiskowe są teraz dostępne dla RubyMine. Dodając je, nie odczuwasz bólu.

Ivan Kevich
źródło