Rails - 找不到 JavaScript 运行时?

Posted

技术标签:

【中文标题】Rails - 找不到 JavaScript 运行时?【英文标题】:Rails - Could not find a JavaScript runtime? 【发布时间】:2011-10-28 20:35:54 【问题描述】:

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

注意:这与 Heroku 无关。

【问题讨论】:

ExecJS and could not find a JavaScript runtime的可能重复 【参考方案1】:

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

我的解决方案当您已经拥有 nvm 时,不需要 gem 设置或安装 'node with sudo apt"

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

    转到 usr/share/applications 在任何编辑器中打开(我使用 vim ) Rubymine DesktopEntry vim RubyMine 编辑 第 6 行(以 Exec 开头)。你应该添加到开头/bin/bash -i -c。所以你的线应该是这样的 Exec=/bin/bash -i -c "/home/USERNAME/rubymine/RubyMine-2019.1.2/bin/rubymine.sh" %f 完成!你太棒了!

作为一项优势,您的所有环境变量现在都可用于 RubyMine。因此,添加它们您不会感到痛苦。

【讨论】:

【参考方案2】:

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

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

【讨论】:

【参考方案3】:

安装 Javascript 运行时

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

你可以通过Node版本管理器或者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 版本。

【讨论】:

【参考方案4】:

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

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

gem 'therubyracer'

编译coffeescript和uglifier需要javascript运行时。

更新,2011 年 12 月 12 日:有些人发现 ruby​​theracer 存在问题(我认为主要是代码大小)。他们发现 execjs(或 nodejs)工作得一样好(如果不是更好的话)并且要小得多。

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

【讨论】:

它也用于使用 UglifyJS 压缩 JavaScript。请注意,执行这些任务的推荐方法是使用rake assets:precompile 在开发中执行它们,然后将资产添加到您的存储库; Rails 3.1 在发布时实际上并不需要生产环境中的 JavaScript 运行时。 我已将此标记为答案。这有点毛骨悚然,因为这并没有立即解决,而且我也在尝试使用 3.0.9 和 3.0.4 的新应用程序,但出现(不同)错误。最后我又做了一个新的应用程序——还得到了 rails rc5 并添加了 ruby​​theracer 并做了一个 bunlde 更新,最后我可以让服务器启动并运行。谢谢加齐尔! btw 创建的标准 Rails 应用程序确实使用了 uglifier,我相信这也需要这个。 我认为一个好的做法可以放在开发组下的gemfile中,比如group :development do gem 'therubyracer' end @eveevans 找不到运行时错误。该资产是在生产环境中编译的,因此 ruby​​racer 必须位于生产环境块下。【参考方案5】:

如果都失败了你可以试试

# aptitude install nodejs

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

#节点-v

如果你想安装 NPM,请参考link。希望对您有所帮助。

【讨论】:

【参考方案6】:

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

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

sudo apt-get install nodejs

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

yum -y install nodejs

【讨论】:

我也是。 sudo apt-get install nodejs. 我现在推荐这条路线。见上文。 删除了答案中关于通过 Ubuntu 软件中心安装节点的注释,因为它不存在 (Ubuntu 12.04) Ubuntu 64 给安装 therubyracer 带来了巨大的麻烦,甚至最后一个版本 0.11.1 也没有解决这个问题。这个答案帮助了我。 @gwho 下面是杨的回答。看看那个。【参考方案7】:

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

sudo yum install -y nodejs

【讨论】:

【参考方案8】:

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

【讨论】:

【参考方案9】:

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

希望这能帮助遇到和我一样问题的人。

【讨论】:

确实为我工作 add-apt-repository ppa:chris-lea/node.js @jpganz18 先试试这个:sudo apt-get install software-properties-common 如果这不能解决问题,你可以手动安装它:blog.anantshri.info/howto-add-ppa-in-debian【参考方案10】:

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

gem 'therubyracer'
gem 'execjs'

然后运行

bundle install

Install Node.js 为所有项目永久修复它。

【讨论】:

这对我有用(Linux Mint 16),我认为在最新版本的 Rails 中要么错过了一些依赖项。【参考方案11】:

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

C:\Windows\System32

路径

然后重新启动计算机。

【讨论】:

【参考方案12】:

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

【讨论】:

以上是关于Rails - 找不到 JavaScript 运行时?的主要内容,如果未能解决你的问题,请参考以下文章

Rails:找不到 JavaScript 运行时。有关可用运行时的列表,请参阅 https://github.com/sstephenson/execjs。 (ExecJS::RuntimeUnava

Gitlab CI 设置错误 - 找不到 JavaScript 运行时

Rails 服务器告诉我 --- 找不到类型为 'application/javascript' 的文件 'jquery-ui/datepicker'

[Ruby on Rails] 找不到类型为“application/javascript”的文件“jquery-ui/autocomplete”

无法运行 bootsrap:找不到类型为“application/javascript”的文件“bootstrap-sprockets”

Rails 3 在子目录中运行,找不到资产