Rails - Не удалось найти исполняемый файл JavaScript?

Я создал новый проект Rails, используя rails 3.1.0.rc4 на моем локальном компьютере, но когда я пытаюсь запустить сервер, я получаю: Не удалось найти исполняемый файл JavaScript. См. здесь для списка доступных сред выполнения. (ExecJS::RuntimeUnavailable)

Примечание: речь идет не о Героку.

Ответ 1

Установка библиотеки времени выполнения javascript, такой как nodejs, решает этот

Чтобы установить nodejs на ubuntu, вы можете ввести в терминал следующую команду:

sudo apt-get install nodejs

Чтобы установить nodejs на системы с помощью yum, введите в терминале следующее:

yum -y install nodejs

Ответ 2

Примечание от Майкла 12/28/2011 - Я изменил свое согласие с этим (rubytheracer) на выше (nodejs), поскольку у therubyracer есть проблемы с размером кода. Heroku теперь сильно препятствует этому. Он будет работать, но может иметь проблемы с размером и производительностью.

Если вы добавите среду выполнения, такую ​​как therubyracer, в свой Gemfile и запустите пакет, попробуйте запустить сервер, и он должен работать.

gem 'therubyracer'

Для компиляции coffeescript, а также для uglifier требуется время выполнения javascript.

Обновление, 12/12/2011: Некоторые люди обнаружили проблемы с rubytheracer (я думаю, что это был главным образом размер кода). Они обнаружили, что execjs (или nodejs) работают так же хорошо (если не лучше) и были намного меньше.

n.b. Coffeescript стал стандартом для 3.1 +

Ответ 3

Добавьте следующие драгоценные камни в свой файл gem

gem 'therubyracer'
gem 'execjs'

и запустите

bundle install

ИЛИ

Установить Node.js, чтобы постоянно исправлять его для всех проектов.

Ответ 4

sudo apt-get install nodejs не работает для меня. Чтобы заставить его работать, я должен сделать следующее:

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

Надеюсь, это поможет кому-то, имеющему ту же проблему, что и я.

Ответ 5

На платформе Windows я тоже встретил эту проблему Решение для меня просто добавляет

C:\Windows\System32

в PATH

и перезагрузите компьютер.

Ответ 6

У меня была эта проблема на Windows-машине и установка node.js была решением, которое, наконец, сработало для меня. Это произошло после использования нескольких других маршрутов, включая попытку получить работу "therubyracer". Хотя github для node.js предполагает, что установка на windows по-прежнему нестабильна, на веб-сайте http://nodejs.org/ был установлен установщик Windows, который отлично работал.

Ответ 7

если вы уже установили nodejs из источника, например, и execjs не распознает его, вы можете попробовать этот совет: https://coderwall.com/p/hyjdlw

Ответ 8

Если все не удается, вы можете попробовать

# aptitude install nodejs

как root. Вы можете протестировать свою установку с помощью следующей команды:

# node -v

Если вы хотите установить NPM, обратитесь к ссылке. Надеюсь, что это поможет.

Ответ 9

В CentOS 6.5 для меня работало следующее:

sudo yum install -y nodejs

Ответ 10

Установить время выполнения Javascript

Ошибка вызвана отсутствием времени выполнения Javascript на вашем локальном компьютере. Чтобы решить эту проблему, вам необходимо установить NodeJS.

Вы можете установить NodeJS через диспетчер версий Node или nvm:

Сначала установите nvm:

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

Установите Node через nvm:

nvm install 5.9.1

Это установит версию 5.9.1 из Node.

Ответ 11

Я столкнулся с этой проблемой, используя Phusion Passenger (работающий как модуль nginx) на сервере Redhat. У нас уже установлен Javascript. Другие приложения Rails в одном и том же родительском каталоге работали нормально.

Оказалось, что у нас была проблема с разрешениями. Запустите "ls -l" и проверьте, имеет ли папка тот же самый владелец и группа, что и другие рабочие приложения в системе. Мне пришлось запустить chown и chgrp в папке (с помощью рекурсивного переключателя), чтобы исправить ее.

Ответ 12

Я надеюсь, что у вас есть предустановленный nodejs || NMV.

Мое решение не требует установки gem или установки 'узла с sudo apt ", когда у вас уже есть nvm.

Все, что вам нужно, это отредактировать DesctopEntry из RubyMine. для этого у нас будут маленькие шаги:

  1. Перейти к usr/share/applications
  2. Откройте в любом редакторе (я использую vim) Rubymine DesktopEntry vim RubyMine
  3. Отредактируйте строку 6 (начинается с Exec). Вы должны добавить к началу /bin/bash -i -c. Так что ваша строка должна выглядеть так Exec=/bin/bash -i -c "/home/USERNAME/rubymine/RubyMine-2019.1.2/bin/rubymine.sh" %f
  4. Готово! Вы великолепны!

В качестве преимущества все переменные среды теперь доступны для RubyMine. Таким образом, вы не чувствуете боли, добавляя их.