Я пытаюсь использовать шаблон Mongoid / Devise Rails 3.1 ( Mongoid и Devise ), и все время получаю сообщение о том, что ExecJS не может найти среду выполнения JavaScript. Достаточно справедливо, когда у меня не было никаких установленных программ, но я пытался установить Node.js , Mustang и Ruby Racer , но ничего не помогло.
Я не мог найти среду выполнения JavaScript. См. Sstephenson / ExecJS (GitHub) для получения списка доступных сред выполнения ( ExecJS::RuntimeUnavailable
).
Что мне нужно сделать, чтобы это работало?
ruby-on-rails-3.1
execjs
javascript
srboisvert
источник
источник
Ответы:
Пользователи Ubuntu
Я на Ubuntu 11.04 и у меня были похожие проблемы. Установка Node.js исправила это.
Начиная с Ubuntu 13.04 x64 вам нужно только запустить:
Это решит проблему.
Пользователи CentOS / RedHat
источник
Просто добавьте ExecJS и Ruby Racer в свой гем-файл и запустите
bundle install
после.Все должно быть хорошо после.
источник
gem 'therubyracer'
В вашем Gem файле напишите
а потом беги
У меня все отлично работает :)
источник
У меня была похожая проблема: мое приложение Rails 3.1 нормально работало в Windows, но получало ту же ошибку, что и OP, при работе в Linux. Исправление, которое работало для меня на обеих платформах, заключалось в добавлении следующего к моему
Gemfile
:Хитрость заключается в том, чтобы знать, что на
:platforms => :ruby
самом деле означает использовать этот драгоценный камень только с «C Ruby (MRI) или Rubinius, но НЕ Windows».Другие возможные значения
:platforms
описаны в наbundler
странице человека .К вашему сведению: Windows имеет встроенный движок JavaScript, который
execjs
может найти. В Linux нет встроенной функции, хотя есть несколько доступных для установки.therubyracer
это один из них. Другие перечислены вexecjs
README.md .источник
Добавление следующего драгоценного камня в мой Gemfile решило проблему:
Затем объедините ваши новые зависимости:
источник
Альтернативный способ - просто связать без группы драгоценных камней, которая содержит вещи, которых у вас нет.
Ну действуй:
вам вообще не нужно изменять Gemfile, если, конечно, вы не занимаетесь цепочкой активов - что обычно применяется в средах, не связанных с разработкой. Bundle запомнит ваш параметр --without в файле .bundle / config.
источник
Добавьте следующие драгоценные камни в свой файл драгоценного камня
и беги
вы сделали :)
источник
Для Amazon Linux (AMI):
источник
Я использовал для добавления Ruby Racer в файл Gem. Но эй, Node.js работает!
источник
У меня была такая же ошибка, но только на моем промежуточном сервере, а не в производственной среде. nodejs уже был установлен в обеих средах.
Набрав:
Я обнаружил, что команда узла находилась в: / usr / bin / node на производстве, но: / usr / local / bin / node в стадии подготовки.
После создания символической ссылки на постановку, т.е.
приложение тогда работало в постановке.
Нет суеты, нет суеты.
источник
nodejs
такжеНе используйте RubyRacer, так как это плохо сказывается на памяти. Установка Node.js, как предлагают некоторые люди здесь, является лучшей идеей.
Этот список доступных сред выполнения, которые могут использоваться библиотекой ExecJs, также документирует использование Node.js.
https://github.com/sstephenson/execjs
Итак, Node.js не является излишним и гораздо лучшим решением, чем использование RubyRacer.
источник
К вашему сведению, это исправило проблему для меня ... это проблема с поиском путей: http://forums.freebsd.org/showthread.php?t=35539
источник
Я начал сталкиваться с этой проблемой, когда начал использовать rbenv с Ruby 1.9.3, где в качестве системного ruby используется 1.8.7. Драгоценный камень установлен в обоих местах, но по какой-то причине скрипт rails не поднял его. Но добавление "execjs" и "therubyracer" в Gemfile помогло.
источник
В вашем файле gem раскомментируйте эту строку.
19 # драгоценный камень 'therubyracer', платформы :: ruby
И запустите пакетную установку
Вы готовы к работе. :)
источник
Попытка отладки в RubyMine с использованием Ubuntu 18.04, Ruby 2.6. *, Rails 5 и RubyMine 2019.1.1 натолкнулась на ту же проблему.
Чтобы решить эту проблему, я раскомментировал
mini_racer
строку из моегоGemfile
и затем запустилbundle
:Изменить на:
источник
Я установил
node
через nvm и столкнулся с этой проблемой при развертывании с Capistrano. Capistrano не загружал nvm автоматически, потому что он работает не в интерактивном режиме.Чтобы исправить это, просто переместите строки, которые nvm добавляет к вам,
~/.bashrc
вверх. Файл будет выглядеть примерно так:источник