Rails - 找不到 JavaScript 运行时?

问题描述 投票:0回答:14

我在本地计算机上使用

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

注意:这与 Heroku 无关。

javascript ruby-on-rails ruby-on-rails-3 node.js ruby-on-rails-3.1
14个回答
503
投票

安装nodejs等javascript运行时库可以解决这个问题

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

sudo apt-get install nodejs

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

yum -y install nodejs

47
投票

Michael 的注释 2011 年 12 月 28 日 - 我已将我的接受从这个 (rubytheracer) 更改为上面的 (nodejs),因为 therubyracer 存在代码大小问题。 Heroku 现在强烈劝阻它。它会“工作”,但可能存在尺寸/性能问题。

如果您将运行时(例如 therubyracer)添加到 Gemfile 中并运行捆绑包,然后尝试启动服务器,它应该可以工作。

gem 'therubyracer'

编译 CoffeeScript 和 uglifier 需要 JavaScript 运行时。

更新,2011 年 12 月 12 日: 有些人发现了 rubytheracer 的问题(我认为主要是代码大小)。他们发现 execjs(或 Nodejs)工作得同样好(如果不是更好的话),而且要小得多。

n.b. Coffeescript 成为 3.1+ 的标准


31
投票

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

gem 'therubyracer'
gem 'execjs'

然后跑

bundle install

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


16
投票

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

希望这能帮助那些和我有同样问题的人。


7
投票

在windows平台上,我也遇到了这个问题 对我来说,解决方案就是添加

C:\Windows\System32

路径

然后重新启动计算机。


4
投票

我在 Windows 机器上遇到了这个问题,安装 Node.js 是最终对我有用的解决方案。这是在尝试了多种其他路线(包括尝试让“therubyracer”工作)之后发生的。尽管 Node.js 的 github 表明在 Windows 上安装仍然不稳定,但网站 http://nodejs.org/ 有一个 Windows 安装程序,可以完美运行。


1
投票

例如,如果您已经从源代码安装了nodejs,并且 execjs 无法识别它,您可能想尝试此技巧:https://coderwall.com/p/hyjdlw


1
投票

如果都失败了你可以尝试

# aptitude 安装nodejs

作为根。您可以使用以下命令测试安装:

# 节点-v

如果您想安装NPM,请参考以下链接。希望有帮助。


0
投票

在 CentOS 6.5 上,以下内容对我有用:

sudo yum install -y nodejs

0
投票

安装 Javascript 运行时

该错误是由于本地计算机上缺少 Javascript 运行时引起的。要解决此问题,您需要安装 NodeJS。

您可以通过 Node Version Manager 或 nvm:

安装 NodeJS

首先,安装

nvm

$ curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.31.0/install.sh | bash

通过

nvm
安装Node:

nvm install 5.9.1

这将安装 Node 版本

5.9.1


0
投票

我在 Redhat 服务器上使用 Phusion Passenger(作为 nginx 模块运行)遇到了这个问题。我们已经安装了 Javascript 运行时。同一父目录中的其他 Rails 应用程序运行良好。

原来我们遇到了权限问题。运行“ls -l”并查看该文件夹是否与系统上其他正在运行的应用程序具有相同的所有者和组。我必须在文件夹上运行 chown 和 chgrp (使用递归开关)来修复它。


0
投票

我希望你已经预装了nodejs || nmv.

我的解决方案不需要gem设置或安装'节点与

sudo apt
当你已经有nvm时。

您所需要的只是编辑 RubyMine 的 DesctopEntry。为此,我们将采取这些小步骤:

  1. 前往
    usr/share/applications
  2. 在任何编辑器中打开(我使用 vim ) Rubymine DesktopEntry
    vim RubyMine
  3. Edit 第 6 行(以 Exec 开头)。您应该添加到开头
    /bin/bash -i -c
    。所以你的线路应该是这样的
    Exec=/bin/bash -i -c "/home/USERNAME/rubymine/RubyMine-2019.1.2/bin/rubymine.sh" %f
  4. 完成!你是光荣的!

好处是,所有环境变量现在都可用于 RubyMine。所以添加它们时您不会感到痛苦。


0
投票

在 MacOS 上尝试运行:

brew install node

brew link node

强制链接并覆盖所有冲突文件:

brew link --overwrite node

node -v

0
投票

对于未来的人来说,安装Rails 5.2.0时会出现上述错误,如下所示:

gem install rails -v 5.2.0

然后在 Ubuntu 18.04 上运行

rake db:create:all
。 解决方案是安装 Node.js,如原始答案

所示
© www.soinside.com 2019 - 2024. All rights reserved.