ExecJS并找不到JavaScript运行时

我正在尝试使用Mongoid / Devise Rails 3.1模板 ( MongoidDevise ),并且我一直收到一个错误,指出ExecJS找不到JavaScript运行时。 当我没有安装任何东西的时候就够了,但是我试过安装Node.js , Mustang和Ruby Racer ,但是没有任何工作。

我找不到JavaScript运行时。 请参阅sstephenson / ExecJS (GitHub)以获取可用运行时的列表( ExecJS::RuntimeUnavailable )。

我需要做些什么才能做到这一点?

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' 

一切都应该罚款之后。

在你的Gem文件中,写

 gem 'execjs' gem 'therubyracer' 

然后运行

 bundle install 

一切工作正常我:)

我有一个类似的问题:我的Rails 3.1应用程序在Windows上工作正常,但在Linux上运行时遇到与OP相同的错误。 在两个平台上为我工作的修复程序是将以下内容添加到我的Gemfile

 gem 'therubyracer', :platforms => :ruby 

诀窍是知道:platforms => :ruby实际上意味着只能使用“C Ruby(MRI)或Rubinius,而不是Windows”。

其他可能的值包括:platforms 手册页 。

仅供参考:Windows有一个内置的JavaScript引擎, execjs可以find。 在Linux上没有一个内置的,虽然有几个可用的,可以安装。 therubyracer是其中之一。 其他人列在execjs README.md中 。

添加下面的gem到我的Gemfile解决了这个问题:

 gem 'therubyracer' 

然后捆绑您的新的依赖关系:

 $ bundle install 

另一种方法是只包含没有包含你没有的东西的gem组。

那么:

 bundle install --without assets 

你根本不需要修改Gemfile,当然你并不是在做资产链的东西 – 这通常适用于非开发环境。 Bundle会记住.bundle / config文件中的“–without”设置。

在您的gem文件中添加以下gem

 gem 'therubyracer' gem 'execjs' 

并运行

 bundle install 

你完成了:)

我曾经将Ruby Racer添加到Gem文件来修复它。 但是,嘿, Node.js的作品!

不要使用RubyRacer,因为它在内存上不好。 按照某些人的build议安装Node.js是个好主意。

ExecJs Library可用的可用运行时的列表也logging了Node.js的使用

https://github.com/sstephenson/execjs \

所以,Node.js不是一个矫枉过正的问题,比使用rubyracer更好的解决scheme。

仅供参考,这解决了我的问题…这是一个path问题: http : //forums.freebsd.org/showthread.php? t= 35539

对于亚马逊Linux(AMI):

 sudo yum install nodejs npm --enablerepo=epel 

我有这个相同的错误,但只在我的登台服务器,而不是我的生产环境。 nodejs已经安装在两个环境中。

通过input:

 which node 

我发现node命令位于:/ usr / bin / node中,但是:/ usr / local / bin / node正在执行。

在创build符号链接后,即:

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

该应用程序然后在分期工作。

没有麻烦没有大惊小怪。

当我开始使用rbenv与Ruby 1.9.3,我的系统ruby是1.8.7时,我开始得到这个问题。 gem是安装在两个地方,但由于某种原因,轨道脚本没有拿起它。 但是,将“execjs”和“therubyracer”添加到Gemfile中的确有用。

在你的gem文件中取消注释这一行。

19#gem'therubyracer',平台::ruby

并运行捆绑安装

你已经准备好工作了。 🙂