Próbuję użyć szablonu Mongoid / Devise Rails 3.1 ( Mongoid i Devise ) i ciągle pojawia się błąd informujący, że ExecJS nie może znaleźć środowiska wykonawczego JavaScript. W porządku, gdy nie miałem żadnych zainstalowanych, ale próbowałem zainstalować Node.js , Mustanga i Ruby Racera , ale nic nie działa.
Nie mogłem znaleźć środowiska wykonawczego JavaScript. Zobacz sstephenson / ExecJS (GitHub), aby uzyskać listę dostępnych środowisk uruchomieniowych ( ExecJS::RuntimeUnavailable
).
Co muszę zrobić, aby to działało?
ruby-on-rails-3.1
execjs
javascript
srboisvert
źródło
źródło
Odpowiedzi:
Użytkownicy Ubuntu
Jestem na Ubuntu 11.04 i miałem podobne problemy. Zainstalowanie Node.js naprawiło to.
Od wersji Ubuntu 13.04 x64 wystarczy uruchomić:
To rozwiąże problem.
Użytkownicy CentOS / RedHat
źródło
Po prostu dodaj ExecJS i Ruby Racer do swojego pliku klejnotów i biegnij
bundle install
za nimi.Po tym wszystko powinno być w porządku.
źródło
gem 'therubyracer'
W swoim pliku Gem napisz
a następnie biegnij
Wszystko działa dla mnie dobrze :)
źródło
Miałem podobny problem: moja aplikacja Rails 3.1 działała dobrze w systemie Windows, ale otrzymała ten sam błąd co OP podczas pracy w systemie Linux. Poprawka, która zadziałała dla mnie na obu platformach, polegała na dodaniu do mojego
Gemfile
:Sztuka polega na tym, aby wiedzieć, że
:platforms => :ruby
tak naprawdę oznacza to używanie tego klejnotu z „C Ruby (MRI) lub Rubinius, ale NIE w systemie Windows”.Inne możliwe wartości
:platforms
są opisane nabundler
stronie podręcznika .Informacje: System Windows ma wbudowany silnik JavaScript, który
execjs
może zlokalizować. W systemie Linux nie ma wbudowanego, chociaż istnieje kilka dostępnych do zainstalowania.therubyracer
jest jednym z nich. Inne są wymienione wexecjs
pliku README.md .źródło
Dodanie następującego klejnotu do mojego Gemfile rozwiązało problem:
Następnie połącz swoje nowe zależności:
źródło
Alternatywnym sposobem jest po prostu pakowanie bez grupy klejnotów zawierającej rzeczy, których nie masz.
Więc zrób:
nie musisz wcale modyfikować pliku Gemfile, oczywiście pod warunkiem, że nie robisz rzeczy związanych z łańcuchem zasobów - co zwykle ma zastosowanie w środowiskach innych niż programistyczne. Pakiet zapamięta twoje ustawienie „--without” w pliku .bundle / config.
źródło
Dodaj następujące klejnoty do pliku klejnotów
i biegnij
skończyłeś :)
źródło
W przypadku Amazon Linux (AMI):
źródło
Kiedyś dodawałem Ruby Racer do pliku Gem, aby to naprawić. Ale hej, Node.js działa!
źródło
Miałem ten sam błąd, ale tylko na moim serwerze pomostowym, a nie w moim środowisku produkcyjnym. nodejs został już zainstalowany w obu środowiskach.
Wpisując:
Dowiedziałem się, że polecenie node znajdowało się w: / usr / bin / node na produkcji, ale: / usr / local / bin / node na etapie przemieszczania.
Po utworzeniu dowiązania symbolicznego podczas inscenizacji tj .:
aplikacja działała następnie w inscenizacji.
Bez problemów.
źródło
nodejs
równieżNie używaj RubyRacer, ponieważ źle wpływa na pamięć. Zainstalowanie Node.js zgodnie z sugestią niektórych osób jest lepszym pomysłem.
Ta lista dostępnych środowisk uruchomieniowych, które mogą być używane przez bibliotekę ExecJs, dokumentuje również użycie Node.js
https://github.com/sstephenson/execjs
Tak więc Node.js nie jest przesadą i jest o wiele lepszym rozwiązaniem niż używanie RubyRacer.
źródło
Do twojej wiadomości, to naprawiło problem dla mnie ... to problem z pattingiem: http://forums.freebsd.org/showthread.php?t=35539
źródło
Zacząłem uzyskiwać ten problem, kiedy zacząłem używać rbenv z Ruby 1.9.3, gdzie jako mój system Ruby to 1.8.7. Klejnot jest zainstalowany w obu miejscach, ale z jakiegoś powodu skrypt railsowy go nie podniósł. Ale dodawanie „execjs” i „therubyracer” do Gemfile załatwiło sprawę.
źródło
W swoim pliku klejnotów Odkomentuj tę linię.
19 # gem 'therubyracer', platformy:: ruby
I uruchom instalację pakietu
Jesteś gotowy do pracy :)
źródło
Próbując debugować w RubyMine przy użyciu Ubuntu 18.04, Ruby 2.6. *, Rails 5 i RubyMine 2019.1.1 , napotkałem ten sam problem.
Aby rozwiązać problem, odkomentowałem
mini_racer
linię z mojego,Gemfile
a następnie uruchomiłembundle
:Zmień na:
źródło
Zainstalowałem
node
przez nvm i napotkałem ten problem podczas wdrażania z Capistrano. Capistrano nie ładował nvm automatycznie, ponieważ działa nieinteraktywnie.Aby to naprawić, po prostu przesuń linie, które nvm dodaje do twojego
~/.bashrc
, na górę. Plik będzie wtedy wyglądał mniej więcej tak:źródło