当前的ExecJS运行时不支持ES6

时间:2018-07-17 10:39:43

标签: ruby-on-rails node.js ruby-on-rails-5 rake execjs

rake assets:precompile对于我的rails项目抛出以下错误:

  耙子中止了!   当前的ExecJS运行时不支持ES6。请安装最新的Node.js。

以下是环境信息:

rails -v
Rails 5.0.7

ruby -v
ruby 2.3.1p112 (2016-04-26 revision 54768) [x86_64-linux]

node -v
v6.11.1

我尝试重新安装所有宝石。但是仍然会出现错误。操作系统是RHEL。

任何建议将不胜感激。

5 个答案:

答案 0 :(得分:15)

在将autoprefixer-rails升级到9.0.0版后,我遇到了同样的问题。我通过将autoprefixer-rails设置为9以下的版本来修复它:

gem 'autoprefixer-rails', '8.6.5'

在我的Gemfile中

答案 1 :(得分:7)

升级到Rails 5.2后,我遇到了类似的问题

对我来说,解决方案是添加此行

 # make the ExecJs use NodeJs
 ENV['EXECJS_RUNTIME'] = 'Node'

在此文件中

  

config / boot.rb

然后重新启动Rails服务器

答案 2 :(得分:4)

在Autoprefixer-rails gem中存在与此错误有关的类似问题,但它是从ActionView模板抛出的。密切注意贡献者的反馈:

https://github.com/ai/autoprefixer-rails/issues/137

答案 3 :(得分:4)

therubyracer中用mini_racer替换Gemfile

# gem 'therubyracer', platforms: :ruby
gem 'mini_racer', platforms: :ruby

然后:

$ bundle install

答案 4 :(得分:-1)

安装NodeJS解决了我的问题。