我试图使用蒙古/设计Rails 3.1模板(蒙古和设计),我一直得到一个错误说明ExecJS找不到JavaScript运行时。公平的时候,我没有安装任何,但我已经尝试安装Node.js, Mustang和Ruby Racer,但没有工作。
我找不到JavaScript运行时。参见sstephenson/ExecJS (GitHub)获取可用运行时的列表(ExecJS::RuntimeUnavailable)。
我需要做什么才能让它工作?
我试图使用蒙古/设计Rails 3.1模板(蒙古和设计),我一直得到一个错误说明ExecJS找不到JavaScript运行时。公平的时候,我没有安装任何,但我已经尝试安装Node.js, Mustang和Ruby Racer,但没有工作。
我找不到JavaScript运行时。参见sstephenson/ExecJS (GitHub)获取可用运行时的列表(ExecJS::RuntimeUnavailable)。
我需要做什么才能让它工作?
当前回答
在宝石文件中添加以下宝石
gem 'therubyracer'
gem 'execjs'
和运行
bundle install
你完成了:)
其他回答
Ubuntu用户
我使用的是Ubuntu 11.04,遇到了类似的问题。安装Node.js解决了这个问题。
从Ubuntu 13.04 x64开始,你只需要运行:
sudo apt-get install nodejs
这样问题就解决了。
CentOS / RedHat用户
sudo yum install nodejs
只需在gem文件中添加ExecJS和Ruby Racer,然后运行bundle install即可。
gem 'execjs'
gem 'therubyracer'
之后一切都会好起来的。
当我开始用Ruby 1.9.3使用rbenv时,我开始遇到这个问题,而我的系统Ruby是1.8.7。gem安装在两个地方,但由于某种原因,rails脚本没有拾取它。但是在Gemfile中添加“execjs”和“therubyracer”就成功了。
我遇到了类似的问题:我的Rails 3.1应用程序在Windows上运行良好,但在Linux上运行时得到了与OP相同的错误。对我来说,在两个平台上都有效的修复是在我的Gemfile中添加以下内容:
gem 'therubyracer', :platforms => :ruby
诀窍是知道:平台=>:ruby实际上意味着只使用这个宝石与“C ruby (MRI)或Rubinius,但不是Windows。”
平台的其他可能值在捆绑包手册页中描述。
供你参考:Windows有一个内置的JavaScript引擎,execjs可以找到它。在Linux上没有内置的,尽管有几个可用的可以安装。Therubyracer就是其中之一。其他的在execjs README.md中列出。
不要使用RubyRacer,因为它对内存不好。按照某些人的建议安装Node.js是一个更好的主意。
ExecJs库可以使用的可用运行时列表也记录了Node.js的使用
https://github.com/sstephenson/execjs
所以,Node.js并不是一个多余的,而且比使用RubyRacer更好的解决方案。