我试图使用蒙古/设计Rails 3.1模板(蒙古和设计),我一直得到一个错误说明ExecJS找不到JavaScript运行时。公平的时候,我没有安装任何,但我已经尝试安装Node.js, Mustang和Ruby Racer,但没有工作。

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

我需要做什么才能让它工作?


当前回答

我使用Rails 7和引导5.2.3 Gem。在生产环境中,它运行在基于Alpine Linux的Docker容器中。对于我来说,仅仅安装nodejs和npm是不够的。我必须像这样安装纱线:

apk add --no-cache yarn

在此之后,错误消息才在生产中消失。

其他回答

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

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

和运行 包安装

你已经准备好工作了。:)

另一种方法是不使用包含您没有的东西的gem组进行捆绑。

所以做的事:

bundle install --without assets

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

2022年Mac的答案很简单:

编译安装nodejs

然后重新运行rails服务器。

尝试在RubyMine中使用Ubuntu 18.04, Ruby 2.6进行调试。*, Rails 5和RubyMine 2019.1.1,我遇到了同样的问题。

为了解决这个问题,我从我的Gemfile中取消了mini_racer行,然后运行bundle:

# See https://github.com/rails/execjs#readme for more supported runtimes
# gem 'mini_racer', platforms: :ruby

改变:

# See https://github.com/rails/execjs#readme for more supported runtimes
gem 'mini_racer', platforms: :ruby

在宝石文件中添加以下宝石

gem 'therubyracer'
gem 'execjs'

和运行

bundle install

你完成了:)