Rails - 找不到JavaScript运行时?

Mic*_*ant 244 javascript ruby-on-rails node.js ruby-on-rails-3 ruby-on-rails-3.1

rails 3.1.0.rc4在我的本地机器上创建了一个新的Rails项目但是当我尝试启动服务器时,我得到:找不到JavaScript运行时.有关可用运行时的列表,请参见此处.(ExecJS::RuntimeUnavailable)

注意:这不是关于Heroku的.

the*_*cer 472

安装诸如nodejs之类的javascript运行时库解决了这个问题

要在ubuntu上安装nodejs,可以在终端中键入以下命令:

sudo apt-get install nodejs
Run Code Online (Sandbox Code Playgroud)

要使用yum在系统上安装nodejs,请在终端中键入以下内容:

yum -y install nodejs
Run Code Online (Sandbox Code Playgroud)

  • 对我也是 `sudo apt-get install nodejs`. (14认同)
  • Ubuntu 64 给安装 ruby​​racer 带来了巨大的麻烦,甚至最新版本 0.11.1 也没有解决这个问题。这个答案对我有帮助。 (3认同)

Gaz*_*ler 44

来自Michael 12/28/2011的注释 - 我已经将此接受(rubytheracer)更改为上面的(nodejs),因为therubyracer有代码大小问题.Heroku现在强烈反对它.它将"有效"但可能存在尺寸/性能问题.

如果您将运行时(如therubyracer)添加到Gemfile并运行bundle,请尝试启动它应该工作的服务器.

gem 'therubyracer'
Run Code Online (Sandbox Code Playgroud)

编译coffeescript和uglifier也需要javascript运行时.

更新,12/12/2011:有些人发现了rubytheracer的问题(我认为这主要是代码大小).他们发现execjs(或nodejs)工作得很好(如果不是更好)并且要小得多.

nb Coffeescript成为3.1+的标准

  • 它还用于使用UglifyJS压缩JavaScript.请注意,执行这些任务的推荐方法是使用`rake assets:precompile`进行开发,然后将资产添加到存储库; Rails 3.1在发布时实际上不需要生产中的JavaScript运行时. (3认同)

Ram*_*aja 27

在gem文件中添加以下gem

gem 'therubyracer'
gem 'execjs'
Run Code Online (Sandbox Code Playgroud)

并运行

bundle install
Run Code Online (Sandbox Code Playgroud)

要么

安装Node.js以永久修复所有项目.


小智 15

sudo apt-get install nodejs不适合我.为了使它工作,我必须做以下事情:

sudo apt-get install python-software-properties
sudo add-apt-repository ppa:chris-lea/node.js
sudo apt-get update
sudo apt-get install nodejs
Run Code Online (Sandbox Code Playgroud)

希望这能帮助有同样问题的人.


Yan*_*ang 6

在Windows平台上,我也遇到了这个问题我的解决方案就是添加

C:\Windows\System32
Run Code Online (Sandbox Code Playgroud)

到了PATH

并重新启动计算机.