it-swarm.com.ru

ExecJS и не удалось найти среду выполнения JavaScript

Я пытаюсь использовать шаблон Mongoid/Devise Rails 3.1 (Mongoid и Devise), и я продолжаю получать сообщение об ошибке ExecJS не могу найти JavaScript время выполнения. Справедливо, когда у меня не было никаких установленных программ, но я попытался установить Node.js , Mustang и Ruby Racer , но ничего работает.

Я не мог найти среду выполнения JavaScript. Смотрите sstephenson/ExecJS (GitHub) для списка доступных сред выполнения (ExecJS::RuntimeUnavailable).

Что мне нужно сделать, чтобы это работало?

398
srboisvert

Пользователи Ubuntu

Я на Ubuntu 11.04 и у меня были похожие проблемы. Установка Node.js это исправлено.

Начиная с Ubuntu 13.04 x64 вам нужно только запустить:

Sudo apt-get install nodejs

Это решит проблему.


Пользователи CentOS/RedHat

Sudo yum install nodejs
423
eldewall

Просто добавьте ExecJS и Ruby Racer в свой гем-файл и запустите bundle install после.

gem 'execjs'

gem 'therubyracer'

Все должно быть хорошо после.

446
vincent jacquel

В своем файле Gem напишите

gem 'execjs'
gem 'therubyracer'

а потом беги

bundle install

У меня все отлично работает :)

76
manish nautiyal

У меня была похожая проблема: мое приложение Rails 3.1 нормально работало в Windows, но получало ту же ошибку, что и OP, при работе в Linux. Исправление, которое работало для меня на обеих платформах, заключалось в добавлении следующего к моему Gemfile:

gem 'therubyracer', :platforms => :Ruby

Хитрость заключается в том, что :platforms => :Ruby на самом деле означает использовать этот драгоценный камень только с "C Ruby (MRI) или Rubinius, но НЕ с Windows".

Другие возможные значения :platforms описаны в справочная страница bundler .

К вашему сведению: Windows имеет встроенный движок JavaScript, который execjs может найти. В Linux нет встроенной функции, хотя есть несколько доступных для установки. therubyracer является одним из них. Другие перечислены в execjsREADME.md .

47
jwfearn

Добавление следующего драгоценного камня в мой Gemfile решило проблему:

gem 'therubyracer'

Затем объедините ваши новые зависимости:

$ bundle install
36
JDutil

Альтернативный способ - просто связать без группы драгоценных камней, которая содержит вещи, которых у вас нет.

Ну действуй:

bundle install --without assets

вам вообще не нужно изменять Gemfile, если, конечно, вы не занимаетесь цепочкой активов - что обычно применяется в средах, не связанных с разработкой. Bundle запомнит ваш параметр --without в файле .bundle/config.

16
moschops

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

gem 'therubyracer'
gem 'execjs'

и беги

bundle install

вы сделали :)

6
Ramiz Raja

Для Amazon Linux (AMI):

Sudo yum install nodejs npm --enablerepo=epel
5
William Hu

У меня была такая же ошибка, но только на моем промежуточном сервере, а не в производственной среде. nodejs уже был установлен в обеих средах.

Набрав:

which node

Я обнаружил, что команда узла находилась в:/usr/bin/node на производстве, но:/usr/local/bin/node в стадии подготовки.

После создания символической ссылки на постановку, т.е.

Sudo ln -s /usr/local/bin/node /usr/bin/node

приложение тогда работало в постановке.

Нет суеты, нет суеты.

4
Sean

Я использовал для добавления Ruby Racer в файл Gem. Но эй, Node.js работает!

4
Richard Zhang

Не используйте RubyRacer, так как это плохо сказывается на памяти. Установка Node.js, как предлагают некоторые люди здесь, является лучшей идеей.

Этот список доступных сред выполнения, которые могут использоваться библиотекой ExecJs, также описывает использование Node.js.

https://github.com/sstephenson/execjs

Итак, Node.js не является излишним и гораздо лучшим решением, чем использование RubyRacer.

3
Nerve

К вашему сведению, это исправило проблему для меня ... это проблема с маршрутизацией: http://forums.freebsd.org/showthread.php?t=35539

2
MichelV69

Попытка отладки в RubyMine с использованием Ubuntu 18.04, Ruby 2.6. *, Rails 5, & RubyMine 2019.1.1, я столкнулся с той же проблемой.

Чтобы решить эту проблему, я раскомментировал строку mini_racer из своего Gemfile и затем запустил bundle:

# See https://github.com/Rails/execjs#readme for more supported runtimes
# gem 'mini_racer', platforms: :Ruby

Правка на:

# See https://github.com/Rails/execjs#readme for more supported runtimes
gem 'mini_racer', platforms: :Ruby
0
CommandZ

Я начал сталкиваться с этой проблемой, когда начал использовать rbenv с Ruby 1.9.3, где в качестве моей системы Ruby указано 1.8.7. Gem установлен в обоих местах, но по какой-то причине скрипт Rails не поднял его. Но добавление "execjs" и "therubyracer" в Gemfile помогло.

0
arangamani

В вашем файле gem раскомментируйте эту строку.

19 # gem 'therubyracer', платформы :: Ruby

И запустите пакетную установку

Вы готовы к работе. :)

0
Sandeep Roniyaar