Я получаю эту ошибку:
грабли прерваны! Не удалось найти среду выполнения JavaScript. См. Https://github.com/sstephenson/execjs ,
Я уже потратил больше часов на поиск в Google, чем готов признать. Я считаю, что это ошибка execJs.
Из всех постов это очень распространенная проблема с рельсами 3.1. JS Runtime теперь необходим для того, что теперь является стандартными гемами, такими как coffee-script и sass.
Большинство из этих случаев были разрешены путем добавления гемов execjs и therubyracer в Gemfile приложения, а затем с помощью «обновления пакета» и / или «установки пакета». Но не для меня.
Я думаю, мне повезло. Я использую rails 3.1.3 / ruby 1.9 на старой версии Redhat Linux 4 (2.6.9-101.ELsmp), а gcc - 3.4.6.
Другие исправления, о которых сообщают, не помогают, я не могу установить 'nodejs', 'johnson' или 'mustang', другие среды выполнения execJs должны найти и использовать. Они не будут делать / устанавливать в моей системе.
Мне нужно исправить проблему, из-за которой execJ не могут найти «therubyracer». Вот Gemfile (и установка пакета говорит Ok):
source 'http://rubygems.org'
gem 'rails', '3.1.3'
gem 'sqlite3'
gem 'sho-mongrel'
gem 'execjs'
gem 'therubyracer'
#gem "therubyracer", :require => 'v8'
group :assets do
gem 'sass-rails', '~> 3.1.5'
gem 'coffee-rails', '~> 3.1.1'
gem 'uglifier', '>= 1.0.3'
end
А вот и след:
~/rails/316-private-pub/chatter-after>rake db:create --trace
rake aborted!
Could not find a JavaScript runtime. See https://github.com/sstephenson/execjs for a list of available runtimes.
/usr/local/lib/ruby/gems/1.9.1/gems/execjs-1.3.0/lib/execjs/runtimes.rb:50:in `autodetect'
/usr/local/lib/ruby/gems/1.9.1/gems/execjs-1.3.0/lib/execjs.rb:5:in `<module:ExecJS>'
/usr/local/lib/ruby/gems/1.9.1/gems/execjs-1.3.0/lib/execjs.rb:4:in `<top (required)>'
/usr/local/lib/ruby/gems/1.9.1/gems/bundler-1.0.21/lib/bundler/runtime.rb:68:in `require'
/usr/local/lib/ruby/gems/1.9.1/gems/bundler-1.0.21/lib/bundler/runtime.rb:68:in `block (2 levels) in require'
/usr/local/lib/ruby/gems/1.9.1/gems/bundler-1.0.21/lib/bundler/runtime.rb:66:in `each'
/usr/local/lib/ruby/gems/1.9.1/gems/bundler-1.0.21/lib/bundler/runtime.rb:66:in `block in require'
/usr/local/lib/ruby/gems/1.9.1/gems/bundler-1.0.21/lib/bundler/runtime.rb:55:in `each'
/usr/local/lib/ruby/gems/1.9.1/gems/bundler-1.0.21/lib/bundler/runtime.rb:55:in `require'
/usr/local/lib/ruby/gems/1.9.1/gems/bundler-1.0.21/lib/bundler.rb:122:in `require'
/home/vitalarthur/rails/316-private-pub/chatter-after/config/application.rb:7:in `<top (required)>'
/usr/local/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
/usr/local/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
/home/vitalarthur/rails/316-private-pub/chatter-after/Rakefile:5:in `<top (required)>'
/usr/local/lib/ruby/gems/1.9.1/gems/rake-0.9.2.2/lib/rake/rake_module.rb:25:in `load'
/usr/local/lib/ruby/gems/1.9.1/gems/rake-0.9.2.2/lib/rake/rake_module.rb:25:in `load_rakefile'
/usr/local/lib/ruby/gems/1.9.1/gems/rake-0.9.2.2/lib/rake/application.rb:501:in `raw_load_rakefile'
/usr/local/lib/ruby/gems/1.9.1/gems/rake-0.9.2.2/lib/rake/application.rb:82:in `block in load_rakefile'
/usr/local/lib/ruby/gems/1.9.1/gems/rake-0.9.2.2/lib/rake/application.rb:133:in `standard_exception_handling'
/usr/local/lib/ruby/gems/1.9.1/gems/rake-0.9.2.2/lib/rake/application.rb:81:in `load_rakefile'
/usr/local/lib/ruby/gems/1.9.1/gems/rake-0.9.2.2/lib/rake/application.rb:65:in `block in run'
/usr/local/lib/ruby/gems/1.9.1/gems/rake-0.9.2.2/lib/rake/application.rb:133:in `standard_exception_handling'
/usr/local/lib/ruby/gems/1.9.1/gems/rake-0.9.2.2/lib/rake/application.rb:63:in `run'
/usr/local/lib/ruby/gems/1.9.1/gems/rake-0.9.2.2/bin/rake:33:in `<top (required)>'
/usr/local/bin/rake:19:in `load'
/usr/local/bin/rake:19:in `<main>'
В журнале разработки нет ничего интересного.
Вот каталог execjs:
/usr/local/lib/ruby/gems/1.9.1/gems/execjs-1.3.0/lib/execjs>ls
disabled_runtime.rb module.rb ruby_rhino_runtime.rb version.rb
external_runtime.rb mustang_runtime.rb runtimes.rb
johnson_runtime.rb ruby_racer_runtime.rb
Я также пробовал execjs-1.2.13. Та же проблема.
Если я прокомментирую execjs.rb ниже, я могу запустить rake без ошибки:
require "execjs/module"
require "execjs/runtimes"
module ExecJS
self.runtime #||= Runtimes.autodetect
end
Но тогда я не получаю время выполнения.
Я вижу, откуда появляется текст ошибки в runtimes.rb:
def self.autodetect
from_environment || best_available ||
raise(RuntimeUnavailable, "Could not find a JavaScript runtime. " +
"See https://github.com/sstephenson/execjs for a list of available runtimes.")
end
Итак, вопрос в том, что, поскольку у меня установлен «therubyracer», почему я не могу найти runtimes.rb? ExecJs не работает?
Вот это «therubyracer»:
/usr/local/lib/ruby/gems/1.9.1/gems/therubyracer-0.9.9
Как я могу это исправить?
sudo apt-get install nodejs
решил мою проблему.В вашем gemfile добавьте:
Для более подробной информации: ExecJS и не удалось найти среду выполнения JavaScript
источник
gem install therubyracer
сначала бежать .Gemfile
и это сработало.Это ссылка, которая мне нужна для решения проблемы (установите nodejs): https://github.com/joyent/node/wiki/Install-Node.js-via-package-manager
источник
Когда вы создаете пустой проект, эта строка комментируется в Gemfile. Просто раскомментируйте его и связывайте!
источник
У меня были подобные проблемы на Ubuntu 12.04. Установка Node.js исправила это.
источник
Я использую Ubuntu 11.10- 32 бит с ruby 1.9.3p194, рельсы 3.2.3, гем 1.8.24. Получал ту же ошибку Javascript при запуске «консоли скрипт / рельсы».
Однако выполнение «sudo apt-get install nodejs» решило мою проблему.
источник
Пользователи Fedora НЕ МОГУТ выполнять простые "ням установки nodejs" из-за серьезных конфликтов имен и размещения файлов, которые мешают этому пакету быть доступным даже через репозитории Fedora.
По-видимому, существует по крайней мере один альтернативный репозиторий с альтернативной сборкой, который может работать, но это два слишком много «альтернатив» для меня, чтобы я захотел его использовать - я ищу другую альтернативу.
источник
Попробуйте установить NodeJS и попробуйте снова.
https://github.com/joyent/node/wiki/Installing-Node.js-via-package-manager
источник
Если вы были на Ubuntu
$ sudo apt-get install nodejs
Старайтесь не использовать другие системы, такие как Windows, для разработки. Подумайте, что почти все серверы в мире являются серверами Linux, поэтому, когда вы попытаетесь развернуть это приложение, будет проще, если вы разработали его также в среде Linux или Unix.
источник
У меня была такая же проблема на промежуточном сервере. У меня не было проблем с выполнением задач rake на моем локальном компьютере разработки, но развертывание на промежуточном сервере завершилось неудачно с сообщением об ошибке «Не удалось найти среду выполнения JavaScript» при попытке запустить ресурсы: прекомпилировать задачу rake.
Конечно, therubyracer и execjs были в моем Gemfile, и я использовал последние версии. Мои файлы Gemfile.lock совпали, и я еще раз проверил версии, запустив bundle show .
После поиска в Google я удалил все драгоценные камни и переустановил их, что устранило проблему. Я до сих пор не знаю, в чем была причина, но, возможно, это поможет вам.
Вот как выглядит моя среда, кстати:
источник
У меня такая же проблема. Добавление драгоценных камней «execjs» и «therubyracer» не работает для меня. apt-get install nodejs - тоже не работает. Я использую 64bit Ubuntu 10.04.
Но мне помогло следующее: 1. Я создал пустую папку (например, «java»). 2. Из терминала в папке, которую я создал, я делаю:
После этого я запускаю "bundle install" как обычно (из папки с проектом ruby & rails). И проблема была решена. Руби не пришлось переустанавливать.
источник
У меня это происходило на моей машине с Windows, оказалось, что проблема была совсем другой. Я случайно удалил некоторые пути из моей
%PATH%
переменной. Просто перезапуск командной строки решил это. Кажется, что на одном из этих отсутствующих путей была среда выполнения JS.источник
Я вырвал свои волосы с этой ошибкой несколько раз. Мне удалось заставить его когда-нибудь исчезнуть, перезапустив Apache / Nginx.
Поэтому я исправил это так же, как и выше, добавив в файл GEM следующее:
а затем я удалил свой файл gemfile.lock и затем перезапустил «пакетную установку». Я обнаружил, что только тогда «пакетная установка» установила правильные библиотеки и т. Д.
источник
На Ubuntu мне пришлось,
sudo apt-get update
а затем работала установка nodejs.источник
когда я генерирую рельсы g контроллер я получил ту же ошибку. После этого, когда были сделаны следующие изменения в Gemfile (в rails 4), все прошло гладко. Изменения, которые я сделал, были
gem 'execjs'
gem 'therubyracer', "0.11.4"
После этого я могу запускать сервер и выполнять все основные операции с приложением.
источник
добавьте в ваш gemfile, который находится в папке, которую вы создали: gem 'execjs' gem 'therubyracer'
источник
В моем случае запуск
bundle
команды сделал свое дело . Я надеюсь, что они находят друг друга тогда.источник
У меня была эта проблема при использовании RubyMine (6.3.3). Однажды я попытался запустить свой код, но он не сработал, и пожаловался на то, что не обнаружена среда выполнения JavaScript. Я был в состоянии бежать
rails s
все же. Для меня исправлением было создание новой конфигурации Run. Кажется действительно странным, что конфигурация Run станет поврежденной.источник