我试图使用蒙古/设计Rails 3.1模板(蒙古和设计),我一直得到一个错误说明ExecJS找不到JavaScript运行时。公平的时候,我没有安装任何,但我已经尝试安装Node.js, Mustang和Ruby Racer,但没有工作。
我找不到JavaScript运行时。参见sstephenson/ExecJS (GitHub)获取可用运行时的列表(ExecJS::RuntimeUnavailable)。
我需要做什么才能让它工作?
我试图使用蒙古/设计Rails 3.1模板(蒙古和设计),我一直得到一个错误说明ExecJS找不到JavaScript运行时。公平的时候,我没有安装任何,但我已经尝试安装Node.js, Mustang和Ruby Racer,但没有工作。
我找不到JavaScript运行时。参见sstephenson/ExecJS (GitHub)获取可用运行时的列表(ExecJS::RuntimeUnavailable)。
我需要做什么才能让它工作?
当前回答
我曾经将Ruby Racer添加到Gem文件中以修复它。但是,Node.js是有用的!
其他回答
我遇到了类似的问题:我的Rails 3.1应用程序在Windows上运行良好,但在Linux上运行时得到了与OP相同的错误。对我来说,在两个平台上都有效的修复是在我的Gemfile中添加以下内容:
gem 'therubyracer', :platforms => :ruby
诀窍是知道:平台=>:ruby实际上意味着只使用这个宝石与“C ruby (MRI)或Rubinius,但不是Windows。”
平台的其他可能值在捆绑包手册页中描述。
供你参考:Windows有一个内置的JavaScript引擎,execjs可以找到它。在Linux上没有内置的,尽管有几个可用的可以安装。Therubyracer就是其中之一。其他的在execjs README.md中列出。
在Gem文件中,写入
gem 'execjs'
gem 'therubyracer'
然后运行
bundle install
对我来说一切都很好:)
尝试在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
供你参考,这解决了我的问题…这是一个路径问题: http://forums.freebsd.org/showthread.php?t=35539
我使用Rails 7和引导5.2.3 Gem。在生产环境中,它运行在基于Alpine Linux的Docker容器中。对于我来说,仅仅安装nodejs和npm是不够的。我必须像这样安装纱线:
apk add --no-cache yarn
在此之后,错误消息才在生产中消失。