我在本地计算机上使用rails 3.1.0.rc4
创建了一个新的Rails项目但是当我尝试启动服务器时,我得到:
找不到JavaScript运行时。有关可用运行时的列表,请参阅here。 (ExecJS::RuntimeUnavailable
)
注意:这不是关于Heroku的。
答案 0 :(得分:463)
要在ubuntu上安装nodejs,您可以在终端中输入以下命令:
sudo apt-get install nodejs
要使用yum在系统上安装nodejs,请在终端中键入以下内容:
yum -y install nodejs
答案 1 :(得分:44)
迈克尔12/28/2011的注意事项 - 我已经将此接受(rubytheracer)改为上述(nodejs),因为therubyracer存在代码大小问题。 Heroku现在强烈discourage it。它会“正常”但可能会出现尺寸/性能问题。
如果您将运行时(如therubyracer)添加到Gemfile并运行bundle,请尝试启动它应该工作的服务器。
gem 'therubyracer'
编译coffeescript和uglifier需要javascript运行时。
更新,12/12/2011:有些人发现了rubytheracer的问题(我认为这主要是代码大小)。他们发现execjs(或nodejs)工作得很好(如果不是更好)并且要小得多。
n.b。 Coffeescript成为3.1 +
的标准答案 2 :(得分:27)
答案 3 :(得分: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
希望这能帮助遇到与我有同样问题的人。
答案 4 :(得分:6)
在Windows平台上,我也遇到了这个问题 我的解决方案就是添加
C:\Windows\System32
到路径
然后重新启动计算机。
答案 5 :(得分:3)
我在Windows机器上遇到此问题,安装node.js是最终适用于我的解决方案。这是在尝试了多个其他路线之后,包括试图让'therubyracer'工作。虽然node.js的github表明Windows上的安装仍然不稳定,但http://nodejs.org/的网站有一个Windows安装程序,它运行良好。
答案 6 :(得分:1)
如果您已经从源安装了nodejs,并且execjs没有认出它,您可能想尝试这个提示:https://coderwall.com/p/hyjdlw
答案 7 :(得分:1)
答案 8 :(得分:0)
在CentOS 6.5上,以下内容对我有用:
sudo yum install -y nodejs
答案 9 :(得分:0)
错误是由本地计算机上缺少Javascript运行时引起的。要解决此问题,您需要安装NodeJS。
您可以通过节点版本管理器或nvm安装NodeJS:
首先,安装nvm
:
$ curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.31.0/install.sh | bash
通过nvm
安装节点:
nvm install 5.9.1
这将安装Node的版本5.9.1
。
答案 10 :(得分:0)
我在Redhat服务器上使用Phusion Passenger(作为nginx模块运行)遇到了这个问题。我们已经安装了Javascript运行时。同一父目录中的其他Rails应用程序运行正常。
事实证明我们有权限问题。运行" ls -l"并查看该文件夹是否与系统上的其他工作应用程序具有相同的所有者和组。我必须在文件夹上运行chown和chgrp(使用递归开关)来修复它。
答案 11 :(得分:0)
我希望您已经预安装了nodejs || nmv。
我的解决方案当您已经拥有nvm时,不需要进行gem设置或安装'sudo apt
“节点。
您需要做的就是编辑RubyMine的DesctopEntry。为此,我们将执行这些小步骤:
usr/share/applications
vim RubyMine
/bin/bash -i -c
。所以你的线应该像这样
Exec=/bin/bash -i -c "/home/USERNAME/rubymine/RubyMine-2019.1.2/bin/rubymine.sh" %f
一个好处是,您所有的环境变量现在都可用于RubyMine。因此,添加它们不会感到痛苦。