Я создал новый проект Rails, используя rails 3.1.0.rc4
на моем локальном компьютере, но когда я пытаюсь запустить сервер, я получаю:
Не удалось найти исполняемый файл JavaScript. См. здесь для списка доступных сред выполнения. (ExecJS::RuntimeUnavailable
)
Примечание: речь идет не о Героку.
Чтобы установить nodejs на ubuntu, вы можете ввести в терминал следующую команду:
sudo apt-get install nodejs
Чтобы установить nodejs на системы с помощью yum, введите в терминале следующее:
yum -y install nodejs
sudo apt-get install nodejs
.
Примечание от Майкла 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 +
rake assets:precompile
а затем добавить ресурсы в ваш репозиторий; Rails 3.1 на самом деле не потребует выполнения JavaScript во время выпуска.
Добавьте следующие драгоценные камни в свой файл gem
gem 'therubyracer'
gem 'execjs'
и запустите
bundle install
ИЛИ
Установить Node.js, чтобы постоянно исправлять его для всех проектов.
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
Надеюсь, это поможет кому-то, имеющему ту же проблему, что и я.
На платформе Windows я тоже встретил эту проблему Решение для меня просто добавляет
C:\Windows\System32
в PATH
и перезагрузите компьютер.
У меня была эта проблема на Windows-машине и установка node.js была решением, которое, наконец, сработало для меня. Это произошло после использования нескольких других маршрутов, включая попытку получить работу "therubyracer". Хотя github для node.js предполагает, что установка на windows по-прежнему нестабильна, на веб-сайте http://nodejs.org/ был установлен установщик Windows, который отлично работал.
Если все не удается, вы можете попробовать
# aptitude install nodejs
как root. Вы можете протестировать свою установку с помощью следующей команды:
# node -v
Если вы хотите установить NPM, обратитесь к ссылке. Надеюсь, что это поможет.
если вы уже установили nodejs из источника, например, и execjs не распознает его, вы можете попробовать этот совет: https://coderwall.com/p/hyjdlw
Я столкнулся с этой проблемой, используя Phusion Passenger (работающий как модуль nginx) на сервере Redhat. У нас уже установлен Javascript. Другие приложения Rails в одном и том же родительском каталоге работали нормально.
Оказалось, что у нас была проблема с разрешениями. Запустите "ls -l" и проверьте, имеет ли папка тот же самый владелец и группа, что и другие рабочие приложения в системе. Мне пришлось запустить chown и chgrp в папке (с помощью рекурсивного переключателя), чтобы исправить ее.
Ошибка вызвана отсутствием времени выполнения 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.
В CentOS 6.5 для меня работало следующее:
sudo yum install -y nodejs